{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "62092cb9",
   "metadata": {},
   "source": [
    "Script 5-1: Compute Spectral Clustering for Gaboon Viper Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "ce111495",
   "metadata": {},
   "outputs": [],
   "source": [
    "#create snake area network adjacency matrix\n",
    "import numpy as np\n",
    "import networkx as nx\n",
    "np.random.seed(0)\n",
    "\n",
    "adj_mat = [[1,1,1,0,0,0,1],\n",
    "           [1,1,1,0,0,0,0],\n",
    "           [1,1,1,0,0,0,0],\n",
    "           [0,0,0,1,1,1,0],\n",
    "           [0,0,0,1,1,1,0],\n",
    "           [0,0,0,1,1,1,1],\n",
    "           [1,0,0,0,0,1,1]]\n",
    "\n",
    "adj_mat = np.array(adj_mat)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "1efec7d4",
   "metadata": {},
   "outputs": [],
   "source": [
    "#create spatial weight matrix\n",
    "weights_total = [[1,1,1,0,0,0,1],\n",
    "           [1,1,1,0,0,0,0],\n",
    "           [1,1,1,0,0,0,0],\n",
    "           [0,0,0,1,1,1,1],\n",
    "           [0,0,0,1,1,1,1],\n",
    "           [0,0,0,1,1,1,1],\n",
    "           [1,0,0,1,1,1,1]]\n",
    "\n",
    "weights_total = np.array(weights_total)\n",
    "adj_mat_w=np.multiply(adj_mat,weights_total)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "9067a339",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[4 0 0 0 0 0 0]\n",
      " [0 3 0 0 0 0 0]\n",
      " [0 0 3 0 0 0 0]\n",
      " [0 0 0 3 0 0 0]\n",
      " [0 0 0 0 3 0 0]\n",
      " [0 0 0 0 0 4 0]\n",
      " [0 0 0 0 0 0 3]]\n",
      "[[ 3 -1 -1  0  0  0 -1]\n",
      " [-1  2 -1  0  0  0  0]\n",
      " [-1 -1  2  0  0  0  0]\n",
      " [ 0  0  0  2 -1 -1  0]\n",
      " [ 0  0  0 -1  2 -1  0]\n",
      " [ 0  0  0 -1 -1  3 -1]\n",
      " [-1  0  0  0  0 -1  2]]\n"
     ]
    }
   ],
   "source": [
    "#explore degree and Laplacian matrices\n",
    "degree_matrix=np.diag(adj_mat_w.sum(axis=1))\n",
    "laplacian_matrix=degree_matrix-adj_mat_w\n",
    "print(degree_matrix)\n",
    "print(laplacian_matrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "550c3429",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<class 'networkx.utils.decorators.argmap'> compilation 17:4: FutureWarning: laplacian_matrix will return a scipy.sparse array instead of a matrix in Networkx 3.0.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhSUlEQVR4nO3dZ3wU5d7G8d/sptISOkgNQWkKCkpRQGkCgiKRqoggRUAQQcR+EBCP6Dl0EFFBBOlVqkpHRJSqUkRCQhJ6DRAgZXeeF5zwWEjZ7CazSa7v53NenHDPzBWf8+jlPTP/MUzTNBERERERySCb1QFEREREJHtToRQRERERt6hQioiIiIhbVChFRERExC0qlCIiIiLiFhVKEREREXGLCqWIiIiIuEWFUkRERETcokIpIiIiIm5RoRQRERERt6hQioiIiIhbVChFRERExC0qlCIiIiLiFhVKEREREXGLCqWIiIiIuEWFUkRERETcokIpIiIiIm5RoRQRERERt6hQioiIiIhbVChFRERExC0qlCIiIiLiFhVKEREREXGLCqWIiIiIuEWFUkRERETcokIpIiIiIm5RoRQRERERt6hQioiIiIhbVChFRERExC0qlCIiIiLiFhVKNzmdTubPn0+lSpUwDIN69eqxcuVKTNO0OpqIiIhIllChdENCQgItW7akU6dOlChRgqJFi2Kz2Xj88cfp1KkTDofD6ogiIiIimc7H6gDZlWmaPP/882zatIk1a9bQokWLWz+fP38+zzzzDCVLlmTcuHHWBhURERHJZIape7MZsnz5cp588knmzJlD586d//HnEyZMYODAgXz//fc89NBDFiQUERERyRoqlBngcDioUaMGxYsXZ/369bdd43Q6qVmzJkFBQWzatAnDMLI4pYiIiEjW0DOUGbB27Vr279/PqFGjUlxjs9kYOXIkW7Zs4eeff87CdCIiIiJZS4UyAxYvXkylSpWoU6dOqutatmxJkSJFWLJkSRYlExEREcl6KpQuSkpK4uuvvyYsLCzN29g+Pj60adOGxYsXa4yQiIiI5FgqlC7aunUr58+fJywsLF3rw8LCOHLkCPv378/kZCIiIiLWUKF00erVqylVqhS1atVK1/omTZqQN29eVq9encnJRERERKyhQumi33//nerVq6f7rW1/f3+qVKnC4cOHMzmZiIiIiDVUKF0UHh5O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rSMpUqowNnvG6pJhMyh1Z0nGbBlJcNEgj+TyViqUIiKSbdSuXZu5c+dy9OhRevfuzbRp0wgJCeHpp5/m559/tjqeeMCJEyeYNWvWrXJYpUoVBg8ezKVLlxgyZAjbt2/nwoULLF++nAEDBlC1atVM2/krWaE4n+z7D827NwJI926l3ccGBjz1cmum7BxN4ZI5b+7k3+kZShERybauXLnCF198wbhx4zh69Cj169dn8ODBPPHEE5Y+Z1mvXj2qVavGZ5995tJxX3/9NW3atOHMmTMULVo0k9J5l9jYWDZv3nzrbeyDBw8CcN999916DrJ+/frkzZvX0py/fX+QxWNXsm35z5hOEwwTTAADjJs76Y4kB3YfOw93qEfYy62pdL9rY6OyMxVKERHJ9hwOBytWrGDMmDFs3bqVChUqMHDgQLp3707+/PmzPI8KZcri4+PZvn37rRdpfv75ZxwOBxUqVLhVIBs1auS1v//5kxf5dcsB3n7pXQrnKUrVylXxD/SjTKVS3FmrAtUfrprjb2/fjgqliIjkKDt37mTs2LEsWLCAvHnz0qtXLwYMGEDZsmWzLIMK5f9zOp3s27ePdevWsX79erZs2cL169cpUqQITZo0ufWfChUqWB3VJYUKFWLo0KG8/vrrVkfxCnqGUkREcpT777+fr776ioiICPr06cNnn31GhQoV6NSpEz/99JPV8XKFo0ePMm3aNDp06ECxYsWoWbMm7777LoZhMHLkSPbs2cPp06eZN28evXr1ynZlMjY2losXL1K+fHmro3iNnDldU0REcr3SpUvzwQcf8Pbbb/PFF18wfvx46tSpw4MPPsjgwYN58sknM+05y/z583Px4kWXj7tw4QIA+fLl83SkTHX27Fk2bNhw6znIyMhI7HY7tWvXpl+/fjRt2pS6devi5+dndVSPiIyMBFCh/BMVShERydHy5ctH//796du3LytXrmTMmDG0a9eO8uXLM3DgQJ5//nkKFCjg0WtWqFCBH3/80eXjwsPDKVWqFIGBgR7N42lxcXFs2bLl1nOQ+/btA6BatWo88cQTNG3alIcfftjjf129hQrlP6lQiohIrmC322nTpg1t2rRh165djB07lldffZVhw4bRs2dPXnrpJcqVK+eRa4WGhvLVV19hmuatkTamaXL62FkunLyI02mSNygPZSrd8ZdP8SV/stHbJCYm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WbZsGWPGjLE6TrakGZTpp0IpIiKSQz3++OMMHTqU1157jW3btlkdJ9uJjIwkJCTE6hjZggqliIhIDjZq1CgefPBBOnbsyNmzZ62Ok61oZFD6qVCKiIjkYD4+PsybN4+EhASeeeYZHA6H1ZGyBc2gdI0KpYiISA53xx13MGfOHNatW8d7771ndZxsQTMoXaNCKSIikgs0bdqUd999l+HDh/Pdd99ZHcfrRUREABoZlF4qlCIiIrnE22+/TbNmzXjmmWc4fvy41XG8mmZQukaFUkREJJew2WzMnj0bPz8/OnbsSGJiotWRvFZkZCR58+alcOHCVkfJFlQoRUREcpGiRYuyYMECduzYwZtvvml1HK+lGZSuUaEUERHJZR588EFGjx7Nf/7zH5YvX251HK+kN7xdo0IpIiKSCw0aNIi2bdvy3HPPcfToUavjeB0VSteoUIqIiORChmEwffp0ChcuTPv27blx44bVkbyGZlC6ToVSREQklwoODmbRokXs37+fQYMGWR3Ha1y4cIGrV6+qULpAhVJERCQXu++++5gwYQJTp05lzpw5VsfxChoZ5DoVShERkVyuV69edOnShd69e3Pw4EGr41guuVCGhIRYGyQbUaEUERHJ5QzDYOrUqZQrV4527doRFxdndSRLRUZGki9fPgoVKmR1lGxDhVJERETImzcvixYt4tixY/Tp0wfTNK2OZBnNoHSdCqWIiIgAUKVKFaZNm8bs2bP57LPPrI5jGb3h7ToVShEREbnl6aefpk+fPgwYMIA9e/ZYHccSKpSuU6EUERGRvxg7dizVqlWjffv2xMbGWh0nS5mmSUREhAqli1QoRURE5C8CAgJYuHAh586do3v37rnqecrz588TFxenQukiFUoRERH5hwoVKjBz5kyWLl3KuHHjrI6TZTSDMmNUKEVEROS22rRpw5AhQxg6dCg//PCD1XGyhAplxqhQioiISIref/996tSpQ8eOHTl37pzVcTKdZlBmjAqliIiIpMjX15d58+Zx48YNunTpgtPptDpSptIMyoxRoRQREZFUlS5dmjlz5vDtt98yatQoq+NkKo0MyhgVShEREUlTs2bN+Ne//sWwYcNYv3691XEyjQplxqhQioiISLq88847NGnShKeffpoTJ05YHcfjTNNUocwgFUoRERFJF7vdzldffYWPjw+dOnUiKSnJ6kge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6k6WlOigQo3ybiTMHVQoRUREJNu66/5QHIlp35JOLpMhVKaCUdWla9xZq0JG4+UamkMpIiIi2Vad1rWw+9hwJDlTXHPMPMxRDlCY4hShJLHmX1+yCTIK3/Y4wzAoWaEY5auV8WjmnEiFUkRERLKtgsWCaNiuHpsXbceZQqk8ywkAznOa85z+x583pV2K539ywGMYhme+EZ6TGWZG3rUXERER8RIRvx6jT82hOB0p71K6yrAZBBcLYsah8eQtkMdj582p9AyliIiIZGsh95SjyzvtwIMbiabT5NXp/VQm00mFUkRERLK9zm+0pcbD1bDZPVNt2r/yOA+0uM8j58oNVChFREQk2/Px9WHk169R7aFKbj/z2KZ/C3p9+KyHkuUOeoZSREREcoyE+ERmDV/I/NHLMGxGup+rtPvY8PX35cXxz9O8eyO9iOMiFUoRERHJcX7/+Qgz313Az2v3YLPdvCH793Jp97HjdDix+9pp8nR9nhvRiaKlbz9CSFKnQikiIiI51smI02xesJ3DO4/w+85w4mKvYTMMgosHU7lORarUvpOHOz5IgUL5rY6aralQioiIiIhb9FKOiIiIiLhFhVJERERE3KJCKSIiIiJuUaEUEREREbeoUIqIiIiIW1QoRURERMQtKpQiIiIi4hYVShERERFxiwqliIiIiLhFhVJERERE3KJCKSIiIiJuUaEUEREREbeoUIqIiIiIW1QoRURERMQtKpQiIiIi4hYVShERERFxiwqliIiIiLhFhVJERERE3KJCKSIiIiJuUaEUEREREbeoUIqIiIiIW1QoRURERMQtKpQiIiIi4hYVShERERFxiwqliIiIiLhFhVJERERE3KJCKSIiIiJuUaEUEREREbeoUIqIiIiIW1QoRURERMQtKpQiIiIi4hYVShERERFxiwqliIiIiLhFhVJERERE3KJCKSIiIiJuUaEUEREREbeoUIqIiIiIW/4P/iwjhKGYU7gAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#define Fiedler vector and obtain clustering\n",
    "G = nx.from_numpy_matrix(adj_mat_w)\n",
    "ev = nx.linalg.algebraicconnectivity.fiedler_vector(G)\n",
    "labels = [0 if v < 0 else 1 for v in ev]\n",
    "labels\n",
    "\n",
    "nx.draw(G,with_labels=True, node_color=labels)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "624a3150",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACFBElEQVR4nOzdd1hT1+MG8PcmYclUcCLgnjgYap11VFALBO2yWlttXXXvapetrdU6q9ZVrfXbam2trUTUumqtewAuwD0AQREB2RCSnN8f1vykCqKMG+D9PM99ZCQ3b1DDm3PPPVcSQggQERERET0nhdwBiIiIiKhsY6EkIiIioiJhoSQiIiKiImGhJCIiIqIiYaEkIiIioiJhoSQiIiKiImGhJCIiIqIiYaEkIiIioiJhoSQiIiKiImGhJCIiIqIiYaEkIiIioiJhoSQiIiKiImGhJCIiIqIiYaEkIiIioiJhoSQiIiKiImGhJCIiIqIiYaEkIiIioiJhoSQiIiKiImGhJCIiIqIiYaEkIiIioiJhoSQiIiKiImGhJCIiIqIiYaEkIiIioiJhoSQiIiKiImGhJCIiIqIiYaEkIiIioiJhoSQiIiKiImGhJCIiIqIiYaEkIiIioiJRyR2AiIjKjpycHKSmphq3lJSUPJ/n9720tDTodDoYDAYYDAbo9XrjxwaDAdevXwcA1KtXDwqFwrgplUrjxyqVCra2trCzszNu9vb2eT7P73sWFhYy/+SIyjdJCCHkDkFERPLTarWIiYlBVFQUoqKiEB0dbfw4KioKt27dQk5OTr73V6lUxhL336JnY2MDMzOzPAXx0cIYFhYGg8EAb2/vJxZOvV6P3NxcpKenP7G4pqSkQKfT5ZvNwsICtWvXhpubG1xdXeHm5pZnq127NksnURGwUBIRVSBZWVk4e/Yszpw5gxs3buQpj7dv38ajvxJq1KhhLFyurq5wcXFB5cqV8x0dtLCwgCRJsjwvIcRjo6ePjpImJyfj1q1beQrynTt3jPeXJCnP83Vzc0OdOnXQunVrtGrVCpUqVZLleRGVFSyU5YhOp0NaWtoTD0OlpaUhNzf3sXf8Dz++cOECkpOT0aFDh3wPNymVygIPN5mZmcn9IyCiR2RnZ+Ps2bMIDQ1FSEgIQkNDERERAb1eD5VKBRcXl8dG6h6O3rm4uMDS0lLup1CisrOzHyuZj47MRkdHQ6fTQalUolmzZvD29oaXlxe8vb3RsmVLWFlZyf0UiEwGC6WJEkLg7t27jx1uun//fr5zlzIzM/PdnyRJUKlU+R5uSkxMBAA4OjrmO8fp4fyn/FhaWuZbNu3t7eHs7JznF1bNmjWhVCqL/WdHVBEJIXDmzBkcP37cWCAjIiKg0+lgZmaGFi1aGMuQl5cX3N3deYj3KbRaLcLDw41lPCQkBOfPn0dubi6USiXc3d3h5eUFLy8vvPDCC/Dw8JBthJZIbiyUMsnNzc3zzvi/c5Wio6PzzFWysbGBi4sLqlSp8tTJ6E/6urW1dZFf6IQQyMrKKnDifX7fu3//Pm7duoXk5GTj/h4dIXnSnKaKMEJCVBRarRYHDhyARqPBtm3bcOvWLahUKri7u+cZTWvRogXLYzHJycnB+fPn84z6nj9/HjqdDs7OzggICIBarUa3bt1gbm4ud1yiUsNCWQoevgA9+i43PDw8zwTyatWq5Vus3Nzc4ODgUC7e+aampuYpz/8t0o/O4ZIkCU2aNMkzquLh4QFra2uZnwWRfFJSUvDnn38iKCgIf/75J1JTU+Hm5ga1Wg21Wo0OHTrwjVgpy87OxrFjx6DRaKDRaHDz5k3Y2tqid+/eCAwMRO/eveHg4CB3TKISxUJZzHJych47RBIeHp7nEIm3tzc8PT3RoEEDY4nkXJwHtFqtceT22rVrOH36NEJDQ3HmzBnk5ORAoVCgSZMmeUZfWrduzQnzVK7pdDr89ttv+OGHH3DgwAHk5ubCw8MDgYGBUKvVaNmyZbl4w1keCCFw7tw5Y7kMCwuDSqVC165dMXjwYLzxxhtQqbhiH5U/LJRFJITAxYsXERQUhODgYISEhBjLY/PmzfOMrnES9/PLzc1FZGRknqJ+9uxZaLVaKBQKtGjRAn5+flCr1fD29uYvVyoXsrOzsX79esyfPx/Xr19Ht27d0K9fPwQEBMDV1VXueFQIMTEx2LZtG/744w/s378fderUwdSpUzFkyBD+PqByhYXyOej1+jyHN65cuQJra2v4+vqiW7du8Pb2RqtWrfhiUcK0Wi0iIiIQGhqKgwcPYvv27UhOTuY8JirzUlNTsXLlSixevBgJCQl47bXXMH36dLRu3VruaFQEZ8+exdy5c7F582ZUrVoVEyZMwPvvvw97e3u5oxEVGQtlIeXk5GD37t3QaDQIDg5GQkICqlevDn9/fwQGBqJHjx6ctyQznU6Hw4cPIygoKM88pj59+kCtVsPPzw+2trZyxyTKV05ODr766issWbIEWVlZeOeddzBt2jQ0aNBA7mhUjK5evYr58+dj/fr1sLS0xLhx4/DRRx/xdwiVaSyUT5GWlobVq1dj0aJFuH37Nho3bmyct9SuXTsoFLwcuikSQuD8+fPGUeTQ0FDY29tj9OjRGD9+PKpVqyZ3RKI8rly5gjfeeAMREREYM2YMJk2aBGdnZ7ljUQmKi4vD4sWLsWzZMjRt2hS//vorGjVqJHcsoufCQpmPe/fuYenSpfj222+RlpaGQYMGYdKkSXB3d5c7Gj2HqKgoLF26FKtXr4bBYMB7772HKVOmwM3NTe5oRPj5558xYsQI1KxZE7/++is8PDzkjkSl6MyZM3jjjTcQGxuLVatW4a233pI7EtEz4/Daf9y6dQsTJkyAm5sbFi5ciLfffhvXr1/HunXrWCbLsId/n1FRUfjggw/w888/o0GDBnjnnXdw4cIFueNRBfbZZ59h4MCBCAwMRGhoKMtkBdS6dWuEhobilVdewaBBg/DJJ5/IHYno2QkSQghhMBjE999/L6ysrETlypXFp59+KhISEuSORSUkPT1dLF68WDg7OwuFQiFmzZoldDqd3LGoglmwYIEAIObMmSMMBoPcccgEzJs3TwAQ8+bNkzsK0TPhIW88mCc5cuRI/Pzzzxg6dCgWLVrEkzcqCK1Wi9mzZ+OLL75At27dsGHDBtSsWVPuWFQBHD9+HB06dMC0adMwd+5cueOQCfnoo4/w1Vdf4fDhw+jYsaPccYgKpcIXysuXL+Pll19GfHw8Vq9ejTfffFPuSCSDv//+GwMHDoROp8Mff/yBTp06yR2JyjG9Xg8vLy+oVCqcOHGC17SnPPR6Pdq3b4/s7GzjwuhEpq5Cz6GMiopCjx49YGZmhrCwMJbJCqxbt244c+YMmjVrhj59+iAkJETuSFSOHTt2DGfPnsXChQtZJukxSqUSixYtwvnz53HkyBG54xAVSoUtlFlZWfD19YW5uTn27dvHdd4I1apVw/bt29G8eXP06tULcXFxckeicmr79u2oXr06OnfuLHcUMlEdOnRAzZo1ERwcLHcUokKpsIVy9uzZuHHjBnbs2IFatWrJHYdMhI2NDbZv3w6lUolJkybJHYfKqdu3b6Nhw4Zcx5bypVAo0KhRI9y+fVvuKESFUiFfzZKTkzF//nx88MEHaNKkidxxyMQ4Ojpi/vz5+PXXX3H27Fm541A5pFAokJOTI3cMMnFarZZvOqjMqJD/Uv/8809otVqMGDFC7ihkot58803Y29sjKChI7ihUDrVt2xanT5/G/fv35Y5CJiolJQUhISFo166d3FGICqVCFspTp06hYcOGvKwZ5cvMzAwdO3bEqVOn5I5C5ZC/vz8MBgPWrFkjdxQyUd9//z10Oh38/f3ljkJUKBWyUAohYG5uLncMMnHm5uao4KtqUQmpXbs2Ro8ejc8//xw3b96UOw6ZmOjoaMycOROjRo3i5WGpzKiQhbJWrVq4efMmsrOz5Y5CJuzChQtc5JxKzBdffAEnJyf07t0bCQkJcschE3Hv3j307t0blStXxpdffil3HKJCq5CF0s/PDxkZGdi5c6fcUchEnTt3DpcuXeLhJiox9vb22LNnD5KSktCzZ0+OVBKioqLg4+ODhIQE7N27Fw4ODnJHIiq0CnmlHCEEunfvjlu3buH8+fOwtLSUOxKZECEEevTogejoaISHh/PfB5Wo8+fPIyAgAPfv38f333+Pfv36yR2pVNyNTsD+TUdw8eQVXDp1FWlJ6YAAbKvYoHGb+mjStiG6vdkJ1d2qyh21VAQFBWHIkCGwt7eHRqNBq1at5I5E9EwqZKEEHhzObNWqFd5++22sWbMGkiTJHYlMxNy5czFjxgzs2rULvr6+csehCuD+/fsYNmwYtmzZglGjRuHrr7+GjY2N3LFKxI3waKz76Gec2B4GSfHgddegN+S5jUIhAZIEYRBo28cD784egHoty+dcwoyMDEyfPh3ffvst+vXrh7Vr16Jy5cpyxyJ6ZhW2UALAjz/+iHfeeQcTJ07EggULuN4XYfny5RgzZgw+/fRTfP7553LHoQpECIFVq1Zh4sSJsLa2xtixYzF27Fg4OjrKHa1Y6HV6/PJ1EH76fDOEeLxE5kehVAASMOiT1/DmjL5QqsrHpSqTkpLw7bffYunSpUhPT8eiRYvw/vvvc3CDyqwKXSiB/y8QL7/8MtavXw8nJye5I5Wa9PsZuBx6HVfDriM5PgVCCNhWsUGD1nXQyLs+Kld3kDtiqcnMzMT48eOxdu1aTJw4EQsXLuQLO8kiOjoaCxcuxJo1a6BQKDB8+HBMnjy5TC9zps3Jxez+i3F02yngOX/jSBLQ7mUvfPLbZJhbmBVvwFIUGxuLRYsWYfXq1dDr9Rg6dCimTJnCs7mpzKvwhRJ4sND522+/DQsLC/z888/o0qWL3JFKjBACp/eHY9vyXTi67RSEQUChkB6MAgAwGIRx5KBV1+ZQj+6FDoFtoFSWj1GBJ4mIiMAbb7yB69ev49tvv8WQIUNYJkl2CQkJWLp0Kb799ltkZGTg7bffxsSJE9G8eXO5oz0TIQS+eH0hDm89CWEo2q8bSSGhQ0AbfLplcpk7ohQZGYnFixfjxx9/hJWVFUaPHo3x48ejWrVqckcjKhYslP+KjY3FW2+9hYMHD+K9997DtGnT0KBBA7ljFat7cUlYNGwVTv15GkqVAnpdwYecFEoFDHoDGnrWwwc/jYVb09qllLR03LlzB4sXL8ayZctQr149/Prrr2XulzWVf6mpqVi9ejUWLVqEO3fuoFGjRggMDIRarUa7du1M/s3eju/24puR3xXrPsctHwr/9017frPBYMDx48eh0Wig0Whw6dIlVK9eHRMnTsT7778POzs7uSMSFSsWykfo9XosWbIE8+bNQ0JCAl577TVMnz4drVu3ljtakYX9dR6f9ZuHnExtoecuPaRUKSBJEiZ+NxI+73QtmYCl6Pr165g/fz5++OEHmJubY8yYMfj4449RqVIluaMR5Ss7Oxt79+6FRqNBcHAw7t69i2rVqsHf3x+BgYHo0aMHrKys5I6Zx92Ye3i3yXjkZGnzvY1O5OIGLiAN95GG+8iFFnXRFPWl/N/cmVuaYd2FJSZ3BnhWVhb++usv499RfHw8qlatCn9/f6jVavj4+HDVCCq3WCifICsrC+vXr8f8+fNx48YN9O7dGzNmzEDnzp3ljvZcwvadw4d9voLBYCjyIadJa0ai93s9iilZ6Tp//jzmzp2LX375BY6OjpgwYQJGjRrFtd6ozNHr9XlGvy5fvoxKlSrB19cXXbt2hZeXF1q3bg1ra2tZc3439Uf8/s2OAt/EZokMnMA+2MAelWCLONx4aqFUKBXoO7Y3Ri4aXAKpCy8zMxNnzpxBSEgI/vnnH+zevRsZGRlo2LAh1Go11Go12rdvb/KjyETFgYWyADqdDr/++ivmzp2L8PBwtGnTBq+88grUajWaNGkid7xCiY9KwHvNJ0KbrS1ymQQASZLwzeEv0Kx942JIV/JiYmKg0WiwdetW7N+/H66urpg6dSreffddjkhSuXHx4kUEBQUhODgYISEh0Gq1UCgUaNq0Kby9veHl5QVvb2+0atWq1P7d52Tl4PWaw5CZmlXg7R7+CpIkCVqRg4MIfmqhBAArW0tsvr0WlpUsii1zQTIzM3H27FmEhoYiJCQEoaGhiIyMhMFggLm5Oby8vIyjxU2aNOE8bKpwWCgLwWAwYMeOHVi3bh12796NrKwsNGrUCGq1GoGBgSY7j0kIgWkvzcL5Q5FPnS9ZWAqlAjXqVMV35xbCwqp0XsifhRAC586dg0ajQVBQEE6fPg2VSoVu3bph0KBB6N+/P8zMyu4ZokRPo9VqERERgdDQUGP5OXfuHLRaLZRKJZo1awYvLy94enqifv36cHNzg5ubW7Gve3lq9xl82Hv2s2V/hkIJAF9un4F2fTyfN+ITpaenIzo6GlFRUbh27RrCwsIQEhKCyMhI6PV6mJubo2XLlsaS7uXlhebNm8Pc3LxYcxCVNSyUzygzMxP79u0zzpFJSEgwzmNSq9V48cUXTWay9VHNKczsOy/f7yeJu7iNaKQgEdnIhBnMYIvKqIdmsJPyX1hXUkgYOmcgXp+qLonYzywrKwvHjh0zHv6LioqCnZ0devfuDbVajd69e/OwNlVoWq0W4eHheUbXzp07h9zcXONtqlSpAjc3N7i6uhpL5qObk5PTM426bZz9O378bPMzzdl+lkKpUCow6NPX8NYnrxZ6/0II3Lt3D1FRUcbtYXl8uCUlJRlvb2ZmhhYtWuQZ5XV3d2d5JHoCFsoieHQeU1BQEK5cuQJJktCoUaM87149PDxga2tb6vmmvvQ5zv0Tme8L+jlxDLnQojpqwxp20CIH0biMVCTDA51RRcp/OYuqLo7YcGNFqS/dkZ2djXPnzhl/KYaEhCAiIgJ6vR7Ozs7GeUtdu3bliz5RAfR6PeLi4vItVlFRUcjMzDTe3srKCrVr10blypVhZ2cHOzs72NvbGz/+77Zn0RFEHrjyTFNtnqVQSgoJTbs0QK+pnZGamoqUlBSkpqY+tj38+v379xETE4OsrP8/BF+pUiVjYX5Ska5Vq5ZJHn0iMkUslMVECIHLly/j2LFjxqJz5swZZGdnQ5IkNG7cOM+73NatW5fopdXuxtzDQLf3C7yNVmTDXMp7xqFO6HAUf8IG9vCUCl6Pc/5fM9G6m3uRs+YnJycH586dyzOqEh4eDp1OB5VKlWfkoG3btmjdujXnLZGshBAwGAzQ6/VlftPpdMjMzDQWs7S0NGRkZECr1UKr1SI3N9e46XQ64/ZQa3SEk1TzmX5+z3rIO1HE4zQOAXgwB/O/pfbRwmtvb4/atWvnKY+Ojo58zSAqJiq5A5QXD0tj48aNMXjwYAAPTuqJjIzMM5dpy5YtxpJZo0aNx94RP/ouuSiHzi8cv/LU2/y3TAKASlLBWtghG5lPuMf/UygViDx2uUiFMjMz84mjIg+/FhsbC71eD5VKBXd3d3h5eWHEiBHw8vJCixYtuPxGEZWn8lMa5aowtzMYimeuclFJkgSlUlmsm52dHSpXrlzgbRQKhfHfVcohPXS3BYCSK2ydu3TC9k2/wM7ODtbW1iyHRDJioSxBKpUKLVu2RMuWLTFkyBAAQG5uLiIjI3H69GncuHHDWKJOnTqFmJiYPHOaHBwc8hRNV1fXAg832djYGA/PXAm9BqWZEvpc/TNl1olcpOE+KuMp67sJgcuh14yfGgwGZGRkFHi46datW3mK471794z3VygUcHZ2Nj7fzp07w83NDa1bt0bLli1hYWGRp/zodDqkpKTIXjTk3gpbdCpa+XnSplKpYGFhUSz7KY28RdlMoVgtHbUGO7//65lfgwpLaaZE3aZ1UKtWrRLZPxE9Gx7yNiF6vR537tzJd05TTEwMUlNTC9yHjY0N7O3t4ZbeFFap9pCecXQgXJxEPGLQBt0LPDEHANIVKThrfth4yKsgCoUCKpUKZmZmxl/KCsWDBdMf/vIraLSsopWf8lp0TLX8UPHbtW4/Fg5d+Uz3edZD3hNXj0CfYS89b0QiKkYcoTQhSqUSzs7OcHZ2RocOHZ54G4PBgPT09AInoaempiL81+u4n5YJPMPbhWsiHHcQjcZo/dQyCQAqpQq1a9eGubk5zM3NYWFhYfzT0tLSuFlZWRmLZFnfWH6ICqd5x8KvVXtP3IYeeujx4I1pBtIQL24BAJxQA0rpyb+qmnUoG+vhElUELJRljEKhMB7irl07/2trL727Fjuv7Sv04abrIhI3cBH10RwuUuGuYd6+SzvM27uzULcloorFpbEzmrZvhEsnrz516aCLOJ1n3vZd3MJdPCiUHdEbVv/5VaVQSGjoVR91mrsUf3Aiei4slOVU/VZuz1QmryMS9dAMdaWmhbqP0kyJhh71ihKRiMq5fuP6YPab3zz1dp2kPs+0X4NBoO+4Z7sPEZWs0l1EkEpNI+/6hbrdwzJZF01QT2pW6P3rc/Vo6MVCSURPdvv2bSz9dRGSRQIgFd9UfaVKgeYdG6Pbmx2LbZ9EVHQslOVU/dZ1UL1OwWdqR4nLuI5IOKI6nFATKSIxz1YQpZkCHi+V3BqURFQ2CSGwdu1aNG3aFEeOHMbIZe/AwtICkqLo848lhQSlmQrT1o8p9YsqEFHB+D+ynFIoFAgc07vAF/EExAEAEhGPU/j7sS1fkkCU9gpaerbEkiVLkJ6eXtzxiagMunr1Knr06IFhw4ahb9++uHDhAoaOGYJZ26ZDqVQUqVRKCgkKhQKfb52GWvVrFGNqIioOXDaoHMtIzcSQxuNwPyH1mS5/9jRmlmaY8ttw/PDL99i0aRPs7OwwatQojB07FtWrVy+2xyGiskGn02HhwoX47LPPULNmTXz33Xd46aW8y/mcPRCBz/rNR2Za1jNd3xt4cCEFKxtLfLplCjx7tCjO6ERUTDhCWY5Z21XClHWji7VMAsDweYPQ/eWu+Omnn3Dt2jW88847+Oabb+Dm5oaRI0fiypWnX6WHiMqHsLAwtG3bFh9++CHGjBmD8+fPP1YmAaBV1+ZYd3EJ2gd4A3gwF/JpHt7mBT8v/HBxCcskkQnjCGUFsOaDDdg8X1Pk/UgKCR3UbfDpb5Mfm7+UnJyMlStXYsmSJUhISEDfvn0xbdo0tGvXrsiPS0SmJzMzE59//jkWLlyI5s2b4/vvv4e3t3eh7nvx5BUEr9yD/ZsOQ6d9sPbkg/IoQa/XAwJQmSnRtX9H+L/vi2YvNCrBZ0JExYGFsgIQQmD15P/h9292PLis7nP+jXdQt8FHv0yEuYVZvrfJzs7GTz/9hAULFuDy5cvo3Lkzpk2bhj59+nASPVE5sX//fgwfPhy3bt3CzJkzMWXKFJiZ5f+6kJ9cbS5uhsfgStgNpCamAULAztEWDTzroo67a4GvNURkWlgoKwghBPb/fBhLR69BdkZOoecwKVUPLo/47uwB6DfxZSiVykLdT6/XY9u2bZg3bx6OHz+OZs2aYcqUKRgwYAAsLCyK8lSISCbJycmYOnUqvv/+e3Tp0gVr1qxBo0YcPSQiFsoKJ/F2MjZ+sQV7/ncAOVlaKM2Ujy2ArlQpYdAboFBK6PJae7z1yWtwbeL8XI8nhMCRI0cwb948BAcHo1atWpgwYQKGDx8Oe3v74nhKRFQKfv/9d4wZMwaZmZmYP38+hg4dyqMORGTEQllBZaZl4fAfJ3Dx5FVcPHkFyXfuQwgB2yo2aNKmARp510enV15A5WrFV/ouXLiABQsW4KeffoKlpSVGjhyJ8ePHw9n5+coqEZW8uLg4jBkzBlu3boVarcby5cv5f5aIHsNCSaUuLi4OS5cuxcqVK5GVlYWBAwdiypQpaN68udzRiOhfBoMBa9euxdSpU2FlZYXly5ejX79+kKSiL1BOROUPCyXJJjU1FWvWrMHixYsRGxsLPz8/TJ06FZ07d+YvLSIZXb58GcOHD8c///yD9957D/Pnz0flypXljkVEJowTYEg2dnZ2mDx5Mq5fv47169fjxo0bePHFF9G+fXv88ccfD5YPIaJSk5ubizlz5qBly5aIiYnBX3/9hbVr17JMEtFTsVCS7MzNzfHOO+/g/Pnz2LFjBywtLfHKK6+gSZMmWL16NbKysuSOSFTuhYSEoE2bNvj4448xbtw4nD9/Ht27d5c7FhGVESyUZDIkSUKfPn1w4MABnDhxAq1bt8b7778PNzc3fPnll0hKSpI7IlG5k5mZialTp6Jdu3aQJAmnTp3CvHnzUKlSJbmjEVEZwjmUZNKuXr2KRYsW4YcffoBSqcR7772HiRMnok6dOnJHIyrz9u3bhxEjRiAuLg6fffYZJk2a9FwLlBMRcYSSTFqDBg2wYsUKREVFYdKkSdiwYQMaNGiAgQMH4syZM3LHIyqTkpKS8O6776Jnz55wdXXFuXPn8MEHH7BMEtFz4wgllSkZGRlYt24dFi1ahJs3b6Jnz56YNm0aevTowTPDiZ5CCIEtW7Zg7NixyM7OxoIFC/Dee+/x/w4RFRlHKKlMsba2xtixY3HlyhVs2rQJ9+7dQ8+ePeHp6YlNmzZBp9PJHZHIJMXGxiIwMBCvv/46OnbsiMjISAwdOpRlkoiKBQsllUkqlQr9+/dHaGgo9u3bh2rVqmHAgAFo2LAhli5dioyMDLkjEpkEg8GAVatWoVmzZjh16hR+//13/P7776hVq5bc0YioHOEhbyo3zpw5gwULFuCXX36Bvb09Ro8ejTFjxqBatWpyRyOSxaVLlzBs2DAcOnQIw4YNw7x58+Dg4CB3LCIqhzhCSeVG69atsWHDBly7dg2DBg3CokWL4Obmhvfffx9Xr16VOx5RqcnNzcXs2bPRsmVL3L59G/v378d3333HMklEJYYjlFRuJSUlYeXKlVi6dCkSEhLQr18/TJs2DW3btpU7GlGJOXXqFN577z1ERkZiypQpmDlzJqysrOSORUTlHEcoqdyqUqUKPvroI0RFRWHVqlU4d+4c2rVrh65du2LHjh0wGAxyRyQqNhkZGZg0aRJeeOEFmJmZ4dSpU5g7dy7LJBGVChZKKvcsLS0xfPhwXLhwAX/88Qeys7Ph5+eHli1b4n//+x+0Wq3cEYmKZM+ePXB3d8eqVavw9ddf48SJE/Dw8JA7FhFVICyUVGEolUr07dsXx44dw8GDB1GvXj0MHjwY9erVw4IFC5Camip3RKJnkpiYiMGDB8PX1xf16tXD+fPnMWXKFKhUKrmjEVEFwzmUVKFFRkZiwYIF2LBhA6ysrDBy5EiMHz+eS6qQSRNC4Ndff8W4ceOQm5uLhQsXYsiQIVxTkohkw0JJhAeLPi9duhSrVq1CVlYWBg0ahClTpqBp06ZyRyPKIyYmBqNGjcL27dvx6quvYtmyZahRo4bcsYiogmOhJHpESkoK1qxZg8WLFyMuLg7+/v6YNm0aOnbsyNEfktXDBcqnT58OW1tbLF++HIGBgXLHIiICwDmURHnY29tjypQpuHHjBn744Qdcu3YNnTt3RocOHbB161bo9Xq5I1IFdOHCBXTp0gWjR4/GgAEDEBkZyTJJRCaFhZLoCczNzTF48GCcP38e27dvh7m5Ofr164dmzZrhu+++Q3Z2ttwRqQLQarX44osv0Lp1ayQkJOCff/7BqlWrYG9vL3c0IqI8eMibqJBOnDiB+fPn448//kC1atUwbtw4vP/++6hcubLc0agcOnHiBIYOHYqLFy9i2rRp+OSTT2BpaSl3LCKiJ+IIJVEhtWvXDlu2bMGlS5fQt29fzJo1Cy4uLpg4cSKio6PljkflRHp6OiZMmID27dvDwsICISEhmD17NsskEZk0jlASPaf4+Hh8++23WL58OVJTU9G/f39MnToVrVq1kjsalVG7d+/GiBEjcPfuXXz55ZcYN24c15QkojKBhZKoiNLT07Fu3TosWrQIUVFR8PHxwbRp09C9e/cKf2a4Xq9HWloaUlJSkJqa+tiWnZ0Ng8EAg8EAvV5v/NhgMCAtLQ0ajQZvvvkmlEolFAqF8c+Hm1KphJWVFezs7GBvbw87O7s8m42NDRQK0z8Qc+/ePUyaNAk//fQTXnrpJaxevRr16tWTOxYRUaGxUBIVE51Oh99++w3z5s3DmTNn4OnpialTp+LVV18tF6NMQgjcv38fUVFRxi06OhqJiYlITU19YmnMyMjId3+SJMHS0vKxgvjw47t37wIAqlWrBgCPFU69Xg+9Xo+cnJwCH8PW1vaxovlwq169OlxdXeHm5mbcrK2ti/cHVwAhBDZt2oTx48dDr9dj0aJFeOeddyr8GxEiKntYKImKmRAC+/btw/z587F3717UqVMHkyZNwrvvvluqZeVZGQwG3L5921gUHy2OD7+WlpZmvL2FhQVcXFxQrVq1J44O5jdq+HCztrYultFDvV6P9PT0fEvtw+2/30tJScGdO3dw69atPMtBOTo6PlYy3dzcjF9zcnIqlsIXHR2N999/Hzt37sQbb7yBJUuWoHr16kXeLxGRHFgoiUrQ6dOnMX/+fGzevBn29vYYM2YMxowZg6pVq8qay2Aw4MqVKwgJCUFoaChCQkJw+vRppKenG2/j4OBQYLGqVq1amTic/DQ6nQ5xcXH5FumoqChkZWUZb+/k5AQvLy94e3sb/6xdu3ahS6Zer8fKlSsxY8YM2NvbY8WKFQgICCipp0dEVCpYKIlKwc2bN7F48WKsXbsWBoMBQ4YMwaRJk9CgQYMSf2yDwYCrV68ai2NoaCjCwsKMo4316tUzlqNmzZoZi6OdnV2JZysLhBBITExEVFQUbt68ifPnzxt/lnfu3AEAVK1aNU/B9PLygrOz82MlMzIyEkOHDsWxY8fw/vvvY86cOVxTkojKBRZKolKUmJiIlStXYunSpUhMTES/fv0wbdo0tGnTplgf5+7du9i+fTs0Gg0OHDiA1NRUAEDdunXzlB5PT09UqVKlWB+7IomLi8szyhsSEmKc+1m9enX4+PhArVaja9eu+PbbbzF79mzUq1cPa9euRadOnWROT0RUfFgoiWSQlZWF//3vf1i4cCGuXr2Krl27YurUqejdu/dzz8+7cuUKNBoNgoKCcPToUQBAx44d0atXL7Rt2xaenp5wdHQszqdB/yGEQGxsLEJDQ3H8+HHs2LED58+fN/6d9u7dG8uXL0edOnXkDUpEVMxYKIlkpNfrERQUhHnz5uHkyZNwd3fH1KlT0b9/f5ibmxd4XyEETp06ha1bt0Kj0eDChQuwtLQ0jor5+fkZz5Cm0peWloaPPvoIy5Ytg6urK6pVq4awsDAIIdCuXTuo1Wq88soraNiwodxRiYiKjIWSyAQIIXDo0CHMmzcPO3bsgLOzMyZOnIhhw4Y9NpfRYDAgODgYc+bMwYkTJ+Dk5AQ/Pz8EBgaiZ8+eqFSpkkzPgh76888/MXLkSNy7dw+zZ8/G2LFjoVQqce/ePezYsQMajQa7d+9GZmYmAgICMGPGDLzwwgtyxyYiem4slEQmJiIiAgsWLMDGjRtRqVIljBw5EuPHj4eTkxN++eUXfP3114iIiEDnzp0xffp0+Pr6QqlUyh2bACQkJGDChAn4+eef4ePjg1WrVqFu3bpPvG1WVpbx7/PSpUvo2rUrZsyYgZ49e3IdSiIqc1goiUxUbGwslixZgpUrVyIrKwtWVlZIT0/Hyy+/jBkzZqBjx45yR6R/CSGwceNGTJgwAUIIfPPNN3jrrbcKVQwfTnuYM2cOQkND4enpienTp+OVV14pF8syEVHFwFcrIhPl7OyMgQMHombNmsYrwwDgaKSJiYqKQp8+fTBo0CD4+PjgwoULGDRoUKFHGZVKJV555RWcOnUKe/fuhYODA15//XX07NkTt2/fLuH0RETFg4WSyAQJIbBixQq0a9cOlSpVQkREBJKTk7Fu3TpcvXoVnTp1QocOHRAUFASDwSB33ApJr9djyZIlaN68OcLDwxEcHIyff/75uU+EkiQJL730Ev766y/s27cPFy5cQKtWrbB79+5iTk5EVPxYKIlMTE5ODt544w2MHj0aw4YNw/Hjx9G0aVNYWFhgyJAhOH/+PIKDg6FSqdC3b180bdoUa9asQXZ2ttzRK4zw8HB07NgREydOxODBgxEZGQk/P79i23+PHj1w5swZeHl5oVevXpg5cyY4O4mITBkLJZEJ0el0GDBgALZt24YtW7Zg2bJlsLS0zHMbhUIBPz8/HDx4EMeOHYO7uztGjBiBOnXq4KuvvkJycrJM6cu/nJwczJw5E56enkhNTcWhQ4fw7bffwtbWttgfq1q1atixYwdmz56NWbNm4Ysvvij2xyAiKi48KYfIhEycOBHLli3D1q1b4e/vX+j7Xb58GYsWLcL69euhUqkwfPhwTJgwAa6uriWYtmI5evQohg4diqtXr2LGjBn48MMPYWFhUSqPPWfOHHz44Yf43//+h7fffrtUHpOI6FmwUBKZiJCQELRt2xbz58/H5MmTn2sf8fHxWLZsGVasWIG0tDT0798fU6dORcuWLYs5bcWRmpqKDz/8ECtWrEDbtm2xdu1auLu7l2oGIQQGDRqEXbt24eLFi3BycirVxyciehoWSiIT0adPH9y6dQthYWFQqVRF2ld6ejq+//57LFq0CNHR0fD19cW0adPQrVs3rnH4DHbs2IGRI0ciOTkZX331FUaPHi3bWfbx8fFo1KgRRo8eja+++kqWDERE+eEcSiITkJqain379mHYsGFFLpMAYGNjg/Hjx+Pq1avYuHEj7ty5gx49eqBNmzb49ddfodPpiiF1+XX37l28+eab8PPzg7u7OyIiIjBu3DhZl2yqXr06+vXrB41GI1sGIqL8sFASmYDw8HDk5uaiS5cuxbpfMzMzDBgwAKdPn8bu3btRuXJl9O/fH40aNcLy5cuRmZlZrI9X1gkh8OOPP6Jp06bYu3cvNmzYgJ07d8LNzU3uaACArl27IjIykn9vRGRyWCiJTMDDmSdmZmYlsn9JkuDj44O9e/ciNDQU7dq1w7hx4+Dq6orPPvsMCQkJJfK4ZcmNGzfQq1cvvPPOO+jduzcuXLiAgQMHmtQUgYf/PjhTiYhMDQslkQlwdnYGAFy4cKHEH8vT0xObNm3C1atXMWDAAMyfPx9ubm4YPXo0rl27VuKPb2r0ej0WL14Md3d3XLhwATt37sSGDRtQtWpVuaM9JjIyElWqVHlsKSkiIrmxUBKZgDp16qB58+bYvHlzqT1m3bp1sXTpUkRHR2PGjBnYvHkzGjVqhDfeeAMhISGllkNO586dQ/v27TF58mQMHToUERER6N27t9yxnkiv12PLli3o06cPL79JRCaHhZLIRIwdOxabN2/G4cOHS/VxHR0d8cknnyA6OhrLly9HaGgo2rRpg+7du2PXrl3l8vBqdnY2Pv74Y3h5eSEjIwNHjhzBkiVLSmSB8uKycuVKXL58GaNHj5Y7ChHRY7hsEJGJMBgM6NChA+7evYsjR46gZs2asuTQ6/XYunUr5s2bh1OnTqFFixaYOnUq+vfvX2JzPEvToUOHMGzYMFy/fh0fffQRpk+fXmoLlD+vkJAQdOvWDQMGDMDq1avljkNE9BiOUBKZCIVCgV9++QVarRY9e/aU7UQZpVKJV199FSdOnMCBAwfg4uKCt99+G/Xr18eiRYuQlpYmS66iSk1NxahRo9ClSxdUqVIFZ86cwcyZM02+TJ4/fx6+vr5wd3fHwoUL5Y5DRPREHKEkMjEXL17Eiy++CDMzM/z888/FvpTQ8wgPD8eCBQuwceNGWFtbY9SoURg3bhxq1KhRrI+jzcnF9bM3cSX0OuKuxUOn1cHcyhyuTZ3RyKseXJvVfq75g9u2bcOoUaOQkpKCOXPmYNSoUVAoTP/99P/+9z+MGjUKjRo1wv79+1G5cmW5IxERPRELJZEJio2NxVtvvYWDBw9i5syZ+Oijj0ziRIxbt25hyZIlWL16NXJycvD2229jypQpaNy4cZH2G3v1NoJX7MbO7/9CVlo2JAlQqh48XwFAn6sHADjWqoyAUb3QZ1gPOFS1f+p+4+PjMW7cOGzevBl9+vTBypUry8T1zdPS0jB69Gj89NNPGDJkCJYtWwZra2u5YxER5YuFkshE6fV6fPnll5g1axa8vLzw8ccfw8/PzyRG1u7fv4/Vq1djyZIluHPnDgICAjBt2jR06NDhmfaTq83FL3OCsOHLLQAAg97w1PtICgmW1hYYs/Q99Hz7xSeuEymEwP/+9z9MmjQJSqUSS5cuRf/+/U1qTcknycnJwY8//og5c+YgISEBq1atwsCBA+WORUT0VPL/ZiKiJ1IqlZg5cyYOHDgACwsLqNVqtGrVChs3bpT90okODg744IMPcOPGDaxduxaXLl1Cx44d0alTJ2g0GhgMTy+GyfH3MfaFD/HTrN9g0BsKVSYBQBgEstKzMX/Icnzx+kJos7V5vn/9+nX4+PhgyJAh8PPzw4ULF/Dmm2+adJlMT0/HwoULUa9ePYwYMQKenp4ICwtjmSSiMoOFksjEde7cGYcOHcKhQ4fg6uqKt956C40aNcLKlSuRnZ0tazYLCwu8++67iIiIwLZt2yBJEgIDA9GsWTN8//33yMnJeeL97iekYELnT3AjPPr5liX69y6Ht57EzMB5yNXmQqfTYeHChXB3d8eVK1ewa9cu/Pjjj3BycirCMyxZiYmJmDlzJlxdXTF9+nT4+voiMjISW7ZsQcOGDeWOR0RUaDzkTVTGnD17FnPnzsXmzZvh5OSEV199FWq1Gl27doW5ubnc8XDs2DHMnz8fQUFBqF69OsaPH4+RI0fCwcEBwIPlkab2+Bzhhy8WelSyIJJCQucBbbHtwq8IDQ3F+PHj8cUXX8DGxqbI+y4JaWlp2LVrFzQaDbZu3QoAGDZsGCZPngwXFxeZ0xERPR8WSqIy6urVq1i+fDm2bt2KqKgo2NnZoXfv3lCr1ejTpw/s7Z9+0kpJunTpEhYuXIgff/wRZmZmGD58OCZMmIAz2yOxdPTaYn0sAYGkutFY+fMytGvXrlj3XRzi4uKwbds2aDQa7N+/H1qtFi1btsSrr76K999/36RHUYmICoOFkqiME0Lg3Llz0Gg00Gg0CAsLg0qlQteuXREYGIjevXujbt26ss0hvHPnDpYtW4YVK1YgKy0LXRT+EAVMAdUJHa4hHPG4BR20qARb1EET1JAKGL2TgLotXLH69AKTmCup1+sRERGB7du3IygoCKdOnYJSqUSXLl2gVqsREBCAunXryh2TiKjYsFASlTPR0dHG0bADBw5Ap9OhSpUq8PLygre3t/FPV1fXUi1faWlp+PS92Ti/5Sok5P+4YeIgUpGMBmiBSrDBHcQgDjfgjraoIRW85M+y41+hSdvSnXuo1+tx+fJlhISEIDQ0FCEhIThz5gwyMjJgbW2NXr16Qa1W4+WXX0aVKlVKNRsRUWlhoSQqx+7fv48jR44gNDTUWHbi4uIAPLiG96MF08vLCy4uLiVaMke1+QBXw27keyLOPXEbZ3DksfIYJg4iA6nohJfzzadUKdDr3R6YsGp4iWQHHsz/vHz5svFnGRoairCwMGRkZAAAGjRokOfn2b59e1haWpZYHiIiU8FCSVTB3L59O0/BDAkJwZ07dwAA1tbWcHNzM26urq55Pq9Zs+ZzL7CuzclFgO1b0OvyPxEnUoQiHjF4EQFQSP+/CMUdEY1wnIQ3usJByn++oVuz2lgbvvi58gGAVqvFrVu3EBUVZdyio6ONH8fExBjPXK9fv36e8ujp6Wk88YiIqKJhoSQixMXFITQ0FJcvX36sRCUnJxtvp1KpULt27Twls2rVqrC3t4ednd1jm729PSwtLSFJEi6FXMOYttMLzHFK7IeAQFupR56vp4sUHMdeNIEnakv18r2/QqlAcNpPMLc0hxACGRkZSE1NRWpqKlJSUowfP9xu376dpzjGxcXlGT2tXr36Y+W6WbNm8PT05GUQiYgeoZI7ABHJr1atWqhVq9YTv5eWlvZYyYyKisKVK1ewb98+JCUlFbgepkqlgp2dHWqoXFALBc9vzIUWVnj8EoNmMDd+vyAGvQFN6jdFUkYi0tLSClxgvVKlSqhWrRrc3NzQsGFDvPTSS3nKo6urKw9XExEVEgslERXI1tYW7u7ucHd3z/c2Wq32sdG//44MRoXG4cqWuCJlKczsztdefR1VXRwfGyl99HNbW1uoVHz5IyIqLnxFJaIiMzc3h5OTU4HrKZ79JwJTtnxW4H7MYP7EUciHX1Ph6Qu3fzrrY1jbPz7KSUREJYeXXiSiUlGvpdtTb2MDe2QgDQaR91B1OlL//b5dgfd3cq7CMklEJAMWSiIqFbaVbVDNteArwlRFLeihw13E5vn6bdyEBSxhD8d876tQKtD0BV7/mohIDiyURFRqug/oDIUy/5cdJ6kmqqAaLiIMseI6ksRdXBChSEQ8GqBlgWtkGvQGvPh6x5KITURET8Flg4io1MRHJeCteqOAAl51Hr30Yi60sC7MpRcB2DvZ4pfY76Ay49RwIqLSxldeIio11d2qovd7PbD7h79h0D95SR+VpEJjtEZjtH6mfb/92Rssk0REMuEhbyIqVSPmD4JDVTtIiuK5xKNSpUCLzk3hN7JnseyPiIieHQslEZUqa3trfLplClRmyiKXSoVSAXsnO0zfMA4KBV/OiIjkwldgIip1zTs0xuwdH8LMwgxK1fO9DCmUClSubo+F/8xCNZeCzx4nIqKSxUJJRLLw6N4Cq8LmoYFHXQAo8AzuRyn+HdXs1LctVp2ej9oNa5ZYRiIiKhye5U1EstLr9dj53T5sWRSMuGvxUKoUMOgFHn1pkhQSDHo9JOnBWpP9P+iLDuo2MqYmIqJHsVASkUkQQuDcP5E4eyACl0KuIeZiLHRaHSwqWaBuS1f8uvNn9HyjK775fqHcUYmI6D9YKImoTBg4cCAuXryI0NBQuaMQEdF/cA4lEZUJvr6+CAsLQ0JCgtxRiIjoP1goiahM6NnzwTqTe/fulTkJERH9FwslEZUJNWvWRMuWLbFnzx65oxAR0X+wUBJRmeHj44M9e/aAU7+JiEwLCyURlRk+Pj64ffs2wsPD5Y5CRESPYKEkojKjc+fOsLS0xO7du+WOQkREj2ChJKIyw9LSEi+++CLnURIRmRgWSiIqU3x9fXHw4EFkZWXJHYWIiP7FQklEZYqPjw9ycnJw8OBBuaMQEdG/WCiJqExp1qwZnJ2dedibiMiEsFASUZkiSRJ8fHx4Yg4RkQlhoSSiMsfX1xcRERGIjY2VOwoREYGFkojKoJdeegmSJPGwNxGRiWChJKIyx9HREd7e3iyUREQmgoWSiMokHx8f7N27F3q9Xu4oREQVHgslEZVJvr6+SExMxOnTp+WOQkRU4bFQElGZ9MILL8DW1pZnexMRmQAWSiIqk8zMzNC9e3fOoyQiMgEslERUZvn4+ODo0aNITU2VOwoRUYXGQklEZZaPjw90Oh0OHDggdxQiogqNhZKIyqwGDRqgXr16POxNRCQzFkoiKtN4GUYiIvmxUBJRmebr64urV6/i+vXrckchIqqwWCiJqEzr1q0blEolD3sTEcmIhZKIyjR7e3u0b9+ehZKISEYslERU5vn4+OCvv/5Cbm6u3FGIiCokFkoiKvN8fX2RmpqKkydPyh2FiKhCYqEkojLPy8sLVapU4dneREQyYaEkojJPqVTipZde4jxKIiKZsFASUbng4+ODU6dOISkpSe4oREQVDgslEZULPj4+MBgM+Ouvv+SOQkRU4bBQElG54OLigqZNm3IeJRGRDFgoiajc8PX1xZ49eyCEkDsKEVGFwkJJROWGj48PYmJicPHiRbmjEBFVKCyURFRudOnSBebm5jzbm4iolLFQElG5YW1tjc6dO7NQEhGVMhZKIipXfHx8cODAAeTk5MgdhYiowmChJKJyxdfXF5mZmThy5IjcUYiIKgwWSiIqV1q0aIHq1atz+SAiolLEQklE5YpCoYCPjw/nURIRlSIWSiIqd3x8fHDmzBnEx8fLHYWIqEJgoSSicqdnz54AgL1798qchIioYmChJKJyp3r16mjdujXnURIRlRIWSiIql3x9fbF3714YDAa5oxARlXsslERULvn4+CA+Ph7nzp2TOwoRUbnHQklE5VLHjh1RqVIlnu1NRFQKWCiJqFyysLBA165dOY+SiKgUsFASUbnl6+uLw4cPIyMjQ+4oRETlGgslEZVbPj4+0Gq1OHjwoNxRiIjKNRZKIiq3GjduDBcXFx72JiIqYSyURFRuSZIEX19fnphDRFTCWCiJqFzz8fHBhQsXEBMTI3cUIqJyi4WSiMq1Hj16QKFQcJSSiKgEsVASUblWpUoVtGnThvMoiYhKEAslEZV7vr6+2LdvH/R6vdxRiIjKJRZKIir3fHx8kJycjJCQELmjEBGVSyyURFTutWvXDnZ2dpxHSURUQlgoiajcU6lU6NGjB+dREhGVEJXcAYiInpfBYEB6ejpSU1ORmpqKlJQU48f/3e7evYujR4/ipZdeQnZ2NvR6PQwGg/HPh5ter0dkZCQAoHnz5lAoFFAqlVAoFMZNqVRCpVLBzs4uz2Zvb//Y1/77PSsrK0iSJPNPjoioeLFQEpFJ0ul0iI2NRVRUFKKjoxEVFWXcoqOjERcXh9TU1AL3YWNjYyxyFhYWEEIgIyMDjRs3hkqlylMQHy2MOp0ODRo0QKNGjZ5YOA0GA7RaLdLS0nDnzh1cvnw5T6nNzs7ON5NSqYSDgwNcXFzg5uYGNzc3uLq6Gj92c3ND1apVWTqJqEyRhBBC7hBEVDFlZWXh3LlzOHv2bJ7CGBUVhdjYWBgMBuNtHR0d85QuZ2dnODg45Ds6aGNjA6VSmefxGjVqhB49emDlypUl+rwels3/jpI+HEFNSkoyluSHf2ZkZBjvb2lpmadkurq6ol69evD09ESjRo0ee15ERHJjoSSiUpGdnY1z584hNDQUISEhCA0NRXh4OPR6PRQKBZydnZ84Wvfwa9bW1kXOMGbMGOzcuRPXrl0zqRFAIQSSkpLyjMD+t2Dfu3cPwINRVw8PD3h7e8PLywve3t5o2LAhFApOiSci+bBQElGxMxgMOHPmDE6ePGkskOHh4dDpdFCpVHB3d89TiFq0aAELC4sSzxUcHIyAgABcuXIFDRo0KPHHK07JyckICwvLU8ivX78OALC1tYWnp6fx59mhQwe4ubnJnJiIKhIWSiIqFjk5Odi/fz80Gg22bduG27dvQ6lUwt3d3Vh0vLy80LJlS1haWsqSMS0tDVWqVMGSJUswatQoWTIUp6SkJISFhRkLZkhICG7evAkAaNmyJdRqNQIDA+Hh4WFSI7JEVP6wUBLRc0tOTsbOnTuh0Wjw559/Ij09HXXr1oVarUZAQABeeOEFWFlZyR0zjxdffBEODg7QaDRyRykR9+7dw99//42goCDs2LEDKSkpcHFxQUBAANRqNV588UWYm5vLHZOIyhkWSiJ6Jjk5Odi4cSM2btyIgwcPQqfTwdvbG2q1Gmq1Gu7u7iY9GvbVV19hzpw5SEpKgpmZmdxxSlRubi4OHjwIjUYDjUaD6Oho2Nvbo0+fPhg6dCi6detm0n9XRFR2sFASUaGkp6fju+++w6JFixAbG4uePXuib9++8Pf3R+3ateWOV2ghISFo06YN/vnnH3Tp0kXuOKVGCIGzZ89Co9Hgt99+Q0REBNq2bYsPP/wQ/v7+PKmHiIqEhZKICpSYmIhly5Zh2bJlSE1NxcCBA/HBBx+gadOmckd7LgaDAdWqVcPIkSPx5Zdfyh1HFkII7Nq1C3PmzMGhQ4fQrFkzfPDBB3jzzTfL/agtEZUMviUloidKS0vDlClT4Obmhnnz5uGtt97CtWvXsH79+jJbJgFAoVCgZ8+eFfoyjJIkoXfv3jh48CAOHz6MevXq4Z133kHDhg2xdu1acJyBiJ4VCyURPeb06dPw8vLC6tWrMWHCBERFRWHJkiVwdXWVO1qx8PX1RWhoqHFtx4qsY8eOCA4OxtmzZ9GhQwcMGzYMgYGBSExMlDsaEZUhLJREZCSEwLJly/DCCy/A1tYWp0+fxpdffomqVavKHa1Y9ezZE0II7Nu3T+4oJqNly5b4+eefsW3bNhw+fBitW7fG4cOH5Y5FRGUECyURAXgwt3D48OEYN24cRo4ciaNHj5a5xb8Ly9nZGe7u7tizZ4/cUUyOv78/zpw5gzp16qBr167YtGmT3JGIqAxgoSQiCCEwefJkrF27FuvXr8eSJUtK5co1cvLx8cHu3bs5X/AJXFxc8Pfff2PgwIF4++23ERwcLHckIjJxLJREhC1btuCbb77B8uXL8c4778gdp1T4+voiLi4OkZGRckcxSSqVCt9//z38/f0xYMAA3Lp1S+5IRGTCuGwQUQWXlpaGxo0bo127dti6davccUpNVlYWqlSpgtmzZ2PSpElyxzFZ9+/fR5MmTdC5c2f89ttvcschIhPFEUqiCu7333/HnTt3sHjxYrmjlCorKyt06dKF8yifwsHBAV988QW2bNmCuLg4ueMQkYlioSSq4LZv34527dqhTp06ckcpdT4+Pvjnn3+QnZ0tdxST1q9fPygUCuzcuVPuKERkolgoiSq4uLi4Mr1QeVH4+voiOzsbhw4dkjuKSXN0dESNGjUQGxsrdxQiMlEslEQVnCRJyM3NlTuGLJo3b46aNWvysPdTCCGg1WohSZLcUYjIRLFQElVwXl5e+Oeffyrk8jmSJBmXD6L8XbhwAffu3YO3t7fcUYjIRLFQElVwgYGBiImJwZ9//il3FFn4+vri/PnzuH37ttxRTNaqVatgY2OD7t27yx2FiEwUCyVRBdetWzf06NEDY8aMQUZGhtxxSt1LL70ESZJ42DsfoaGhWL58OWbOnAlLS0u54xCRieI6lESEy5cvw9PTE506dYJGoyn3V8n5L29vbzRu3BgbN26UO4pJuXHjBjp16oTq1avjxIkTMDMzkzsSEZkojlASERo1agSNRoO///4br732GlJSUuSOVKp8fHywZ88eGAwGuaOYjIiICPTo0QOVKlXCjh07WCaJqEAslEQEAOjRowe2bt2Kf/75B56enjh16pTckUqN2s8DQ97Q437U2zDc7QZDvDcM8W1gSOgDQ8qHEJm/QhhS5Y5ZKoQQWLt2Ldq0aQMrKyvs27cPNWvWlDsWEZk4HvImojyuX7+ON954A2fPnsXcuXMxfvx4KJVKuWOVCKE9A5G+BNAegU4voJAkKB57m60CoAdgBlj1hWQzFpKyWumHLQX379/HqFGjsGnTJgwbNgzffPMNKlWqJHcsIioDWCiJ6DFarRYzZszAokWLUL9+fUybNg3vvPNOuZlbKUQORNo3QOY6ABKAwh7qVgKSFSS7mZCs1CUXsJTFx8dj8eLFWLlyJYQQ+O6779C/f3+5YxFRGcJCSUT5Cg0Nxdy5c/H777+jRo0amDx5MoYPHw5bW1u5oz03YUiDSH4PyD0L4Hle/qQH97MeBslmSple7PvGjRuYP38+1q1bB3Nzc7z//vuYMGECD3ET0TNjoSSip7p06RK+/vpr/PTTT7C1tcWYMWMwevRoVK9eXe5oz0QILUTSoH/LZDGcgGM9Ggrb8UXfTykSQuDcuXNYsGABNm3ahMqVK2PChAkYNWoUKleuLHc8IiqjWCiJqNBiYmKwcOFCrFmzBllZWejQoQPUajUCAwPRsGFDueM9lSFtEZCxGs83MvlkUpUNkMzbFtv+SoJer8exY8eg0Wig0Whw5coVuLi4YMqUKRg6dCjnSRJRkbFQEtEzS0xMNJaTPXv2IDs7G02bNoVarYZarUbbtm2hePzsFlmJ3AiIxFfwtJHJwyeyMGdpEo6HZiM7R6B2TRUGvWqLjyc5PuHWCkBRA1LVPyFJViWS+3llZWVh79690Gg0CA4ORkJCAqpXrw5/f3+o1Wr4+PjA3Nxc7phEVE6wUBJRkWRmZmLv3r0ICgrC9u3bce/ePdSoUQP+/v7o1KmTcdFwuc8UNySPAnL+xoMztp/s5z9S8c7YeLwWYIM3+9rCxlqBazdzcTteh0+eWCgfkOxmQaok70ksmZmZOHv2LEJDQ/HXX39h9+7dyMrKQuPGjREYGAi1Wo127dqZXNEnovKBhZKIio1er8fRo0eh0WiwY8cOXLx4EQBgbW0NDw8PeHl5wdvbG15eXmjUqFGplUyhvwOR0BUFjU7G3tahaaebGPSaHZbPfZZlgSRAVR+S445SO0EnKysL586dQ0hICEJDQxESEoLIyEjo9XqYmZmhTZs2xtHixo0bl0omIqrYWCiJqMSkpKQgLCzMWHpCQ0Nx9epVAICNjQ08PDzg7e0NDw8P1K1bF25ubqhVq1axF02RsQEi7QsUNHdy1sJEfL4gCddP1oGby7NfFUZy2gtJ5VaElI/Lzs5GdHQ0oqKicOXKFYSGhiI0NBTh4eHG8tiiRQtjSff29oa7uzsPZRNRqWOhJKJSdf/+fYSFheUZXbt+/brx+0qlErVr14abm1uezdXV1finldWzzVc0pEwHsjQo6HB3z9du4UxEDjYsr4EZs+8h/KIWVRyU6NvHGl9/4gQ724JLrmS/GJLVy4XOJITA/fv3jYXx0e3h1+Lj4423V6lUaNGiRZ5R3hYtWpSbtUGJqGxjoSQi2aWnpz+xWD0sV7GxsXj0papatWqoXbs27O3tYWdnl2d70te8630BK7PoAjM063QTUbE6mKkkTB9bGS94WyLkTA4+m58IzxYW+EdTO99D2kIocSfNDxdjeiE1NfWxLSUlJc/nSUlJiI6ORlpamnEf5ubmxtL83xLt5uaG2rVrc+SRiEwWCyURmbzc3FzcunXrsZKZX3FLSUmBXv//o5GFOYzdpONNXLmei68+dMQHY6sYv750TTImfnoPu391xktdnry8jlYr8N1PKRj/cYLxa5aWlvkWXQcHB7i4uOQpj9WqVeMJM0RUZrFQElG5I4RAdna2sWjWthoCC9XdAu/T0S8Gx0OzEbLHBR4tLI1fv3xNi6adojD3Y0dMHV3lifc1GJRIzPJFpmI87OzsYGtry9FEIqpQVHIHICIqbpIkwcrKClZWVqhevToMSXUBbcGFskVTcxwPzX7s6w/fcisU+Z/BrVAIVKvhDsm6bpFyExGVVTy+QkTln1kLPO39c7+XbQAAu/Zn5vn6n39lAADaeVo+dp//ZwBUzYuSkIioTOMIJRGVe5KZJwTWFngbn67W8POxxheLk2AwAO28LBF6NhuzFiXh5Z7W6NSuoDPLlYCZe/GGJiIqQziHkojKPSFyIe52AkRygbfLyjJg1qIkbPojDbfv6lCrugoD+tni08lVYGGR3wEdJWDZGwqHRcUfnIiojGChJKIKwZC2FMhYgaddy/t5SFV+gWTuWez7JSIqKziHkogqBMn6PUBRDcX7sqcELP1ZJomowmOhJKIKQVJYQ7Kfh4Iuv/hsFIDCHpLdJ8W0PyKisouFkogqDMniBUh2nxbDnpSAZAmp8veQFA7FsD8iorKNhZKIKhSp0kBIdrPxYJGLgq/P/WQKQFEZUpWfIZlxqSAiIoCFkogqIKnSa5AcNYCq8b9fKUyx/Pc2ln0hOe2CZNaspOIREZU5PMubiCosIfRAzgGIzJ8A7dF/v6rA/7/X1gMQyMo2QFj4w9ppGIskEdETsFASEQEQhhQgNwLQXYAwpEOSFIDCCSkZLqjp+iKWLl2FYcOGyR2TiMgksVASET1Fly5d4ODggG3btskdhYjIJHEOJRHRU/j7+2Pfvn3IysqSOwoRkUlioSQiego/Pz9kZWXhr7/+kjsKEZFJYqEkInqKJk2aoH79+ti+fbvcUYiITBILJRHRU0iSBH9/f2zfvh2cdk5E9DgWSiKiQvD390dsbCxOnz4tdxQiIpPDQklEVAidOnWCnZ0dgoOD5Y5CRGRyWCiJiArB3NwcvXr14jxKIqInYKEkIiokf39/hISEIC4uTu4oREQmhYWSiKiQevfuDYVCgR07dsgdhYjIpLBQEhEVkqOjIzp06MB5lERE/8FCSUT0DHjVHCKix7FQEhE9A39/f2RlZWH//v1yRyEiMhkslEREz+DhVXN42JuI6P+xUBIRPQNeNYeI6HEslEREz8jPzw+xsbE4c+aM3FGIiEwCCyUR0TPq3Lkzr5pDRPQIFkoiomf08Ko5LJRERA+wUBIRPQdeNYeI6P+xUBIRPYeHV83ZuXOn3FGIiGTHQklE9Bx41Rwiov/HQklE9Jz8/f2xd+9eXjWHiCo8FkoioufEq+YQET3AQklE9JyaNGmCevXq8bA3EVV4LJRERM+JV80hInqAhZKIqAj8/f151RwiqvBYKImIioBXzSEiYqEkIioSXjWHiIiFkoioyPz8/BASEoLbt2/LHYWISBYslERERdSnTx8oFArs2LFD7ihERLJgoSQiKiJeNYeIKjoWSiKiYsCr5hBRRcZCSURUDPz8/JCVlYW///5b7ihERKWOhZKIqBg0bdqUV80hogqLhZKIqBjwqjlEVJGxUBIRFRN/f3/cunWLV80hogqHhZKIqJg8vGrO9u3b5Y5CRFSqWCiJiIqJubk5fH19OY+SiCocFkoiomLk7++PU6dO8ao5RFShsFASERUjXjWHiCoiFkoiomL08Ko5nEdJRBUJCyURUTHz8/PD3r17kZ2dLXcUIqJSwUJJRFTM/P39kZmZif3798sdhYioVLBQEhEVM141h4gqGhZKIqJixqvmEFFFw0JJRFQC/Pz8cOvWLZw9e1buKEREJY6FkoioBHTp0gV2dnY87E1EFQILJRFRCeBVc4ioImGhJCIqIbxqDhFVFCyUREQlpHfv3lAoFNi5c6fcUYiIShQLJRFRCXFyckL79u152JuIyj0WSiKiEuTv78+r5hBRucdCSURUgnjVHCKqCFgoiYhK0MOr5mzfvl3uKEREJYaFkoioBEmSBD8/P141h4jKNRZKIqIS5u/vj5iYGF41h4jKLRZKIqISxqvmEFF5x0JJRFTCHl41h/Moiai8UskdgIiorNNqtUhNTUVKSgpSU1OfuGVlZeHkyZN47bXXkJubi/T0dOj1ehgMBuOfDze9Xo+wsDAAgJeXFxQKBZRKJRQKhXFTKpVQqVSws7Mzbvb29nk+f9L3bG1toVQqZf6JEVF5w0JJRJQPIQTu3r2L6OhoREVF5dmio6MRGxuL1NRU5OTk5LsPlUoFe3t72NjYAADOnj2LRo0awcnJCSqVKk9BfLQwxsXFoXHjxmjatOkTC6fBYIBWq0VaWhri4uKMxTUlJQVpaWkFngBkbW0NBwcHuLi4wM3N7bHN1dUVdnZ2xf7zJKLySxI87ZCIKrDc3FxERkbi3LlzuHnzZp7yGB0dnWdBcmtr6zzFy9nZGQ4ODgWODlpaWkKSJABAp06d4OTkhKCgoBJ9TgaDARkZGY+Nkj46gpqUlJTnucbExECn0xn34eDg8FjJrF+/Pjw8PODm5mZ8TkREAAslEVUgOp0OkZGRCA0NRUhICEJDQ3H27FljaaxatepjJerRzytXrlykIvX1119j1qxZSExMhKWlZXE9rWKh1+tx586dJ47EPvw4PT0dAODo6AgvLy94eXnB29sbXl5ecHV1ZckkqsBYKImoXBJC4MKFCzh58qSxQJ49exZZWVmQJAmNGzc2liFvb2+0bt3aeFi6pERERMDd3R07d+5E7969S/SxipsQAvHx8QgNDTX+PENCQnD79m0AD65b/mjBbN++PWrUqCFzaiIqLSyURFRu6HQ6HDp0CBqNBhqNBjdv3oQkSWjUqNFj5dHW1rbU8wkhUL9+ffTq1QsrVqwo9ccvCXFxcXlKZmhoKO7cuQMAaNeuHdRqNdRqNZo2bcoRTKJyjIWSiMq0tLQ07N69GxqNBjt27EBycjKcnZ0REBCAgIAAdOjQwaROMBk/fjy2bt2KqKioclmwhBCIi4vDX3/9BY1Gg927dyMjIwMNGjQwlssOHTrwTHOicoaFkojKnNzcXGzevBk///wz9u3bB61WixYtWhgLi5eXl8mWtX379qFnz544c+YMWrVqJXecEpednY2//voLQUFBCA4ORnx8PKpWrQo/Pz8MGzYM7du3lzsiERUDFkoiKjOysrLwww8/YP78+bh58yY6d+6Mvn37Qq1Wo169enLHKxStVgsnJydMmzYNH3/8sdxxSpXBYMCJEyeg0Wjw+++/4+rVq3jxxRcxY8YM+Pj4mOybACJ6OhZKIjJ5KSkpWLlyJRYvXox79+7h9ddfx/Tp08vsCN9rr72G6OhonDhxQu4osjEYDNBoNJgzZw5OnToFT09PTJ8+Hf369ePhcKIyiJdeJCKTlZGRgY8++giurq6YOXMmAgMDcenSJWzatKnMlkkA8Pf3x8mTJ40nr1RECoUCffv2xYkTJ7Bv3z5UrlwZr7/+Opo1a4YNGzYUuDA7EZkeFkoiMknh4eFo06YNFi9ejOHDh+PGjRtYvXo1GjRoIHe0IuvTpw8UCgV27twpdxTZSZKEHj16YN++fThx4gSaNWuGQYMGoX///khJSZE7HhEVEg95E5FJEUJgzZo1GD9+PBo2bIhff/0VTZs2lTtWsevUqROqVq2KrVu3yh3F5Pz2228YOnQonJyc8Msvv6BNmzZyRyKip+AIJRGZDCEExowZgxEjRmDw4ME4ceJEuSyTAODn54c9e/bkubQjPfDaa6/h9OnTcHR0RMeOHfHHH3/IHYmInoKFkohMxvTp07FixQp89913WLlyJaysrOSOVGL8/f2RmZmJv//+W+4oJqlevXo4fPgw+vXrh/79+2PPnj1yRyKiAvCQNxGZhK1bt6Jfv35YvHgxJkyYIHecElcer5pTErRaLfr27YsjR47g4sWLvJwjkYlioSQi2aWnp6Np06bw8PCARqOpMOsRlver5hSXxMRENGnSBD4+Pti4caPccYjoCXjIm4hk98cff+DWrVtYsmRJhSpWfn5+iImJwblz5+SOYtIcHR3x+eefY9OmTbh7967ccYjoCVgoiUh2wcHBaNeuHerWrSt3lFL14osvwtbWFsHBwXJHMXmvvvoqAGDHjh0yJyGiJ2GhJCLZxcTEoHnz5nLHKHXm5ubw9fVloSyEatWqoXr16oiJiZE7ChE9AQslEclOkiTodDq5Y8ji4VVz4uPj5Y5i0oQQ0Ol0FWpKBFFZwkJJRLLz8PDAoUOHKuTl9vr06QNJkngo9ykuXryIe/fuwdPTU+4oRPQELJREJLvAwEDcuHEDf/31l9xRSp2TkxPat2/Pw95PsWbNGlhbW6N79+5yRyGiJ2ChJCLZ9ezZE126dMHo0aMr5JVj/P39edWcApw5cwZLly7Fxx9/XK4Xuycqy1goiUh2kiRh5cqViI6ORv/+/ZGbmyt3pFL18Ko5Bw4ckDuKyYmOjkZAQACaNWuGSZMmyR2HiPLBQklEJqFZs2b4/fffsWPHDgwcOBAZGRlyRyo1zZo1Q926dXnY+z+uXLmCl156CUqlEn/++SfMzc3ljkRE+WChJCKT0adPH2zevBk7duxAmzZtcP78ebkjlQpJkvDWmz1Q1XonDPcnw5DgC8PdDjDc7QTDvX4wpH4GkaWBMGTKHbXUbNiwAZ6enpAkCfv27YOzs7PckYioALz0IhGZnIsXL+KNN97A5cuXsXjxYgwfPhwKRfl8/ytyIyDSl0Fk/w2DwQCFQglJMvznVioAOkCqBFi9BsnmfUiKKnLELXFpaWkYN24c1q9fj0GDBmHFihWwsbGROxYRPQULJRGZpKysLEyePBkrV65E8+bNMX36dLzxxhswMzOTO1qxEEILkb4cyFgNQAKgL+Q9lYBkC8n+C0iWviWYsHQlJiZi2bJlWLZsGbKzs7FixQq88847csciokIqn2/5iajMs7KywooVK3Do0CG4ublh0KBBaNSoEZYvX46srCy54xWJMGRAJL0LZKwCYEDhyyQe3FakQNwf+2Bks4yPCcTGxmLSpElwc3PDvHnzMHDgQFy4cIFlkqiM4QglEZUJZ8+exdy5c7F582Y4OTlhwoQJGDlyJCpXrix3tGcihBYiaQiQG4oHZbJoJJtJkGxGFj1YKbt48SIWLFiAH3/8EdbW1hgzZgzGjRuHqlWryh2NiJ4DCyURlSlXr17F/PnzsX79ehgMBrz44osIDAxEQEAAXF1d5Y73VIa0JUDGCgDF9dIrQaqyCZK5aV9BRgiB0NBQBAUFQaPRIDw8HDVq1MCkSZMwYsQI2NnZyR2RiIqAhZKIyqQ7d+7gjz/+gEajwd9//43c3Fx4eHhArVYjMDAQLVu2NLnrPovcSIjEfshvZPLA0Uz0eCX2id87sr02XvB60qLeCkDpDMlpJyTJovjCFgOtVou///4bGo0G27ZtQ2xsLCpXrgw/Pz+o1Wq8/PLLsLS0lDsmERUDFkoiKvNSUlLw559/QqPRYOfOnUhNTYWbmxvUajU6deoELy8v1K1bV/aCaUgeA+T8hfzmTD4slLNnOKJrx7zl0b2JBWys85/2LtnNhVSpX3HGfWZarRYREREIDQ3Fvn378OeffyI1NRV16tSBWq2GWq1G586doVKpZM1JRMWPhZKIyhWtVot//vkHQUFB2LFjB6KiogAAlStXhpeXF7y9veHl5QUvLy/UqVOn1Eqm0MdDJLyIguZNPiyUv66pgVf9bJ9h7xKgagqFU1BRYxZabm6usTyGhIQgNDQUZ8+ehVarhUKhgIeHBwICAhAYGIgWLVrIXuaJqGSxUBJRuXb37t08pSckJASxsQ8OK1epUsVYMj08PFC3bl24ubnBycmp2AuQyNwIkToLBc2dfP5C+YDktB+SqnYRUj5Op9MhLi4OUVFRuHLlivFnePbsWeTk5EChUKBJkybGou7t7Y1WrVrB2tq6WHMQkWljoSSiCufOnTsIDQ01biEhIYiLizN+38rKCq6urnBzc3tsc3V1hbOz8zMftjWkzACyglDQEkEPC2U1JyUSk/WoZKXAC16W+HhiFXRq96T5k3lJDsueeW3KzMxMREdHIzo6GlFRUY9tsbGx0OsfZJYk6bHy2Lp1a5ZHImKhJCICHiysffPmzScWq+joaNy7d894W6VSCWdnZ9SuXRv29vaws7Mz/vmkzd7eHi2cP4KFMqrADKfPZ+PHzWl4sYMVHCsrcfWmFgtX3Mfl61oE/1QLvt3yL25CKHEvqx+u3u6D1NTUJ24pKSnGj5OSkhAdHY2EhATjPhQKBZydnZ9Yph9+jeWRiJ6EhZKIqBAyMjLylM3o6GjExsbmW9gyM/Ned/vGqTpwrf3sV/m5n6JHq+7RqOKgwOm/3PK9nVYrsOrH+5j4yf8XX0mSYGtr+8TC6+DgABcXlzyl0dnZudxciYiIShcLJRFRCdDpdEhLSzMWzPoOI2Bpdu/pd3yCUR/cxeofU5B+vT6srJ58prfBoMTd9J5I0b9vLI3W1tbl9hroRGRauHYDEVEJUKlUqFy5svFKPobEOkDu8xXKh+/7CzpPSKEQqOncCrWsmz7XYxARFQXfuhIRlQazlnie9/DJ9/XYsS8Trd0tYGlZ0Eu2AVA1f+54RERFwRFKIqJSIJl7QGSuK/A2A0fdhquzGbxaWcCpihJXrudi8apkxCfosO6b6k95BCVgxkJJRPJgoSQiKg0W3QDJDhCp+d6kZVMLbN6W/mC+ZIYBVRyU6NjWEv/7tgbatM7/EoW5OoEjIZbQVTqGnj17chFxIip1PCmHiKiUGNIWQqSvgSTlf7Wc5/XeFEus33ge7u7umDRpEgYMGAALC9O6tjcRlV+cQ0lEVAp0Oh2Wrs1CfEIu9Pmvbf4clIBFH6z76Sz2798PNzc3vPvuu6hTpw5mz56NxMTE4nwwIqInYqEkIiphkZGR6NixIyZPmYkdhzpCqSyuPSsAyRaS/aeQJAndunXD9u3bceHCBQQEBODLL7+Ei4sLRo0ahStXrhTXgxIRPYaFkoiohOh0OsydOxceHh5ISUnB4cOHMWz0j5BspxfD3hUAzCFVWQtJUSXPd5o0aYLVq1cjOjoa06dPx5YtW9C4cWOo1WocPHgQnOlERMWNcyiJiEpAREQEhgwZgtDQUEyZMgWfffYZrKz+/3rcIuMniLTZACQUdH3vJ1MAkj2kKmsgmbV86q2zs7OxYcMGLFq0CBcuXIC3tzcmTZqEV199lVfGIaJiwRFKIqJipNPpMGfOHHh6eiItLQ1Hjx7F119/nadMAoBkPQiS4x+Aqu6/XynMy/G/x8ot+0CquqtQZRIALC0tMXToUISHh2Pnzp1wcHDAgAEDUL9+fSxYsAApKSmFf4JERE/AEUoiomISHh6OIUOGICwsDFOnTsVnn30GS8v8l/sBACFygey9EJk/Abmh/35ViQcFU+DB6KUAoAIsX4ZUaSAk89ZFznr27FksXrwYP//8s7Fwjhs3DnXq1Cnyvomo4mGhJCIqotzcXMybNw+ff/45GjZsiB9++AFt27Z95v0IfQKQGw7oLkKINAAKSIqqDxYsVzWFpLAu9uxxcXH49ttvsWrVKqSkpODVV1/F5MmTnys/EVVcLJREREVw/vx5DB48GGfOnMEHH3yATz/99KmjkqYoIyMD69evx+LFi3Ht2rUHZ6VPnoyAgAAoi++0dCIqpziHkojoOeTm5uLLL7+El5cXcnJycPz4cXz11VdlskwCgLW1NUaPHo1Lly5h69atkCQJ/fr1Q+PGjfHtt98iIyND7ohEZMI4QklE9IzOnTuHwYMH49y5c8ZRyfJ4VZqTJ09i0aJF2LJlC+zs7DBixAiMHTsWtWrVkjsaEZkYjlASERVSbm4uZs2aBW9vb+Tm5uL48eOYPXt2uSyTANC2bVv88ssvuHbtGgYPHozly5ejTp06eOedd3D27Fm54xGRCeEIJRFRIZw5cwZDhgzB+fPnMWPGDHz88cfltkjmJyUlBWvXrsWSJUsQExODHj16YNKkSejVqxcUCo5PEFVkfAUgIiqAVqvFZ599hjZt2kCv1+PkyZP44osvKlyZBAB7e3tMnjwZ165dw6ZNm5CSkoKXX34Z7u7uWLt2LbKzs+WOSEQy4QglEVE+zpw5g8GDByMiIgIffvghPvroI5ibm8sdy2QIIXD48GEsXLgQ27Ztg5OTE0aPHo1Ro0ahatWqcscjolLEEUoiov/QarWYOXMm2rRpAyEETp48ic8//5xl8j8kSULnzp0RFBSES5cu4bXXXsPXX38NFxcXDB8+HBcvXpQ7IhGVEo5QEhE94vTp0xg8eDAiIyPx0Ucf4cMPP2SRfAaJiYlYvXo1li1bhjt37uDll1/GpEmT0K1bN0iSJHc8IiohHKEkIgKQk5ODTz75BG3atIEkSTh16hQ+++wzlsln5OjoiA8//BA3b97EDz/8gOjoaPTo0QOenp746aefoNVq5Y5IRCWAI5REVOGFhoZi8ODBuHjxIj755BPMmDEDZmZmcscqF4QQ2LdvHxYtWoRdu3ahVq1aGDduHIYPH47KlSvLHY+IiglHKImowsrJycHHH3+Mdu3awczMDCEhIfj0009ZJouRJEno2bMn/vzzT4SHh6NXr1749NNP4eLignHjxuH69etyRySiYsARSiKqkEJCQjB48GBcvnwZn3zyCaZPn84iWUri4+OxfPlyrFixAsnJyQgMDMTkyZPRoUMHuaMR0XPiCCURVSg5OTn48MMP8cILL8DCwgIhISH45JNPWCZLUfXq1TFr1ixER0djxYoVCA8PR8eOHdG+fXv89ttv0Ol0ckckomfEQklEFcapU6fg6emJBQsW4PPPP8fx48fRsmVLuWNVWJUqVcKIESNw4cIFBAcHw9LSEq+//joaNmyIb775BmlpaXJHJKJCYqEkonIvOzsb06dPxwsvvAArKyuEhYXho48+4qikiVAoFPDz88Pff/+N0NBQdOzYEVOnToWLiwumTZuGmJgYuSMS0VNwDiURlWsnTpzAkCFDcO3aNXz22WeYOnUqVCqV3LHoKWJiYrBs2TJ89913yMjIwOuvv47JkyfD09NT7mhE9AQcoSSicik7OxsffPABOnToAGtra4SGhmLGjBksk2WEi4sL5s2bh5iYGCxYsABHjx6Fl5cXunbtiuDgYBgMBrkjEtEjWCiJqNw5fvw4PDw88M0332D27Nk4duwY3N3d5Y5Fz8HW1hbjx4/HlStX8NtvvyEnJwcBAQFo2rQpVq1ahczMTLkjEhFYKImoHMnKysK0adPQsWNH2NnZ4fTp05g+fTpHJcsBlUqFV199FceOHcPRo0fRokULjB49Gq6urvjkk09w584duSMSVWicQ0lE5cKxY8cwZMgQ3Lx5E7NmzcKkSZNYJMu569evY8mSJfj++++Rm5uLt956CxMnTuRoNJEMOEJJRGVaVlYWpkyZgo4dO8LBwQGnT5/GtGnTWCYrgHr16mHJkiWIiYnBF198gd27d6NFixbo1asX9u7dC46XEJUeFkoiKrOOHDmC1q1b49tvv8XXX3+NI0eOoGnTpnLHolJWuXJlTJs2DdevX8dPP/2E+Ph4+Pj4oFWrVli/fj1ycnLkjkhU7vGQNxGVOZmZmfj444/xzTffoF27dvjhhx/QpEkTuWORiRBC4MCBA1i4cCF27NiBGjVqYMyYMRg5ciQcHR3ljlcmCCGg1Wqh1+thMBhgMBjyfGwwGKDVaqFUKqFUKqFQKKBQKPJ8rFAoYGZmxvVeKwgWSiIqUw4fPox3330XMTEx+PLLLzFhwgQolUq5Y5GJunjxIhYvXowff/wRkiRh8ODBmDhxIho2bCh3tBJlMBhw9+5dxMbGIiUlBampqUhNTc3z8X+3/34vNze3WLJYWFjAzs4OdnZ2sLe3N3783+2/33NwcEDt2rXh6OgISZKKJQuVHBZKIioTMjMz8dFHH2HJkiVo37491q1bh8aNG8sdi8qIhIQErFy5EsuXL0dCQgICAgIwadIkdO7cuUyWFa1Wi1u3biEqKgpRUVGIjo42fhwVFYWYmJgnHuq3tLQsVJmzs7ODjY0NzMzM8ow4PjoCeffuXVhbW8Pa2vqJI5h6vR65ublIS0t7anl9+LUnldhKlSrBzc0Nbm5ucHV1NX78cKtVqxbfVJoAFkoiMnmHDh3CkCFDEBsbi6+++grjxo3jLxB6LtnZ2di4cSMWLVqEyMhIeHt7Y9KkSXj11VdN8tBscnIywsLCEBoairNnz+LmzZuIiopCXFxcnpOOqlev/sTCVbt2bTg4OBhLorm5uYzP5umys7ONBTMpKQkxMTFPLMxJSUnG+yiVStSuXRtubm6oV68eWrduDW9vb7Ru3RrW1tYyPpuKhYWSSGYGgwHp6elPfMeenZ2d7/ylzMxM7N+/H7179zaOGvx3/pJSqYSVldUTRyCsra1NfmQmIyMDH374IZYtW4YOHTpg3bp1aNSokdyxqBwQQmDXrl1YtGgR9u3bBxcXF4wfPx5Dhw6Fvb29LJlSUlIQFhaGkJAQhIaGIiQkBNeuXQMA2NjYoFWrVqhfv/5jo3UuLi6wsrKSJbNc0tPTHyuZUVFRuHr1Ks6dO4ecnBwoFAo0bdoUXl5e8Pb2hpeXF1q3bo1KlSrJHb9cYqEkKkY6nQ63bt3K80KXmJhY4GGetLS0Qu9fkiRjWXx4aEilUkGSJGPhLCyFQgFbW9sC5zVVq1Ytz2hHjRo1oFCUzuIQBw8exLvvvou4uDh89dVXGDt2LEclqUScPXsWixcvxs8//wxLS0sMHToU48ePh5ubW4k+7pUrV7Bjxw6cOHECISEhuHr1KgDA2toaHh4exhLk7e2NRo0aldr/vbIuNzcXERERxlL+cHRXq9VCoVCgWbNm8PLyQvv27eHn5wdnZ2e5I5cLLJREzyAjI+Oxd8WPfh4bG5un1Dk5OaFatWqFmpD+pM3KyirPiGNhRhSFEMYRTb1ej6ysrHwn4Rc0ST8lJQV37txBSkqKcd9mZmZwcXF5bA7ToyMlFhYWRf4Zz5gxA8uWLUOnTp2wbt26cn8CBZmGuLg4fPvtt1i1ahVSU1PxyiuvYPLkyWjbtm2x7N9gMODUqVMICgqCRqPBhQsXYGFhkac4enl5oXHjxnzzVMy0Wi0iIiLyjP6eOXMGer0ebdq0gVqthlqtRvPmzU3+yI2pYqEkykd8fHyed7ihoaGIjY01fl+pVMLZ2fmJxerhx+Xh0EpKSsoTDy09/Nrt27eNt5UkCfXq1cvzC9LT07PQhxAPHDiA9957D7dv38bcuXMxZswYjspQqcvIyMD69euxePFiXLt2DZ06dcKkSZMQEBDwzEUvOzsb+/fvh0ajQXBwMG7fvg1HR0f4+flBrVbDx8eH8/xkkpSUhJ07dyIoKAi7du1CRkYG6tevbyyXHTt2ZLF/BiyURADu3r37WHm8desWAKBKlSrGctSsWTNjWXR2dubVWADk5OQYJ85HRUXh/PnzCAkJwenTp5GRkQEAaNiwIby8vPKUTDs7O+M+0tPTMX36dCxfvhxdunTB999/jwYNGsj1lIgAAHq9HsHBwVi4cCEOHz6M+vXrY8KECRgyZMhTS+DFixcxb948/Pbbb0hPT89TVDp06MDXDhPzaPHftm0b7ty5A0dHR7zzzjuYNGkSD4sXAgslVUgZGRnYs2cPNBoN9u/fj5iYGACAg4PDY4ef6tSpw0Mgz0Gv1+PSpUt5ivrp06eRmZkJAGjUqBF8fHxQp04dLFu2DAkJCZg7dy5Gjx7NUUkyOSdPnsSiRYuwZcsW2NnZYeTIkRgzZgxq1aqV53YhISGYM2cOtm7dipo1a2LkyJHo27cvD6WWIQ+nJmzZsgVr1qxBVlYW3n77bUybNo3TbwrAQkkVRnx8PIKDg6HRaLBv3z5kZ2ejefPm6N27N9q0aQNvb2/UrVuXL/olSK/X4+LFiwgJCcHhw4fxyy+/ID09HSqVCn369MHAgQPRq1evPKOXRKYkKioKS5cuxZo1a5CdnY0333wTEydORHJyMubMmYO9e/eiQYMGmDZtGt5+++0izykmeaWmpmLlypVYvHgxEhIS8Nprr2H69Olo3bq13NFMDgsllWuXL182ToA/duwYJElCx44dERgYCLVajfr168sdsULav38/3nvvPcTHx2PcuHGwsLCARqPB2bNnYW5ujm7duhn/jmrWrCl3XKLHpKSk4Pvvv8eCBQuM84jr1auH2bNn47XXXuPcu3ImOzsbP/zwA+bPn48bN24gICAAq1at4uvTowRROWMwGMQ///wjevXqJQAIKysrERgYKH744Qdx9+5dueNVaKmpqWLkyJECgOjatau4du1anu/fuHFDLFmyRHTv3l0olUqhVCrFoEGDRHh4uEyJiZ7MYDCIdevWiUqVKglnZ2fRsGFDAUA0a9ZMrFmzRmRlZckdkUpAbm6u2LBhg6hRo4aoVq2a2LVrl9yRTAYLJZUbBoNBBAcHiw4dOggAokWLFmLDhg0iIyND7mgkhNi7d69wc3MT1tbWYsWKFUKv1xd4+8TERPHNN9+I2rVrCwBCrVaL48ePl1JaovylpaWJgQMHCgDi3XffFenp6cJgMIiDBw8KtVotJEkSVatWFZ999hnfxJZT8fHxwtfXVwAQH3zwgcjNzZU7kuxYKKnMy83NFRs3bhTu7u4CgOjQoYMIDg4WBoNB7mgkhEhJSRHDhw8XAES3bt3E9evXn+n+OTk5Yt26daJx48bGfezZs4d/vySLjIwM0alTJ2FjYyM2bNjwxNtcvnxZjBo1SlhZWQlLS0sxfPhwceHChVJOSiVNr9eLr7/+WiiVSjFw4MCnvkku71goqUy7cuWK8PLyEgBEr169xD///MOiYUL27NkjXF1dhY2NjVi5cmWRXnB1Op3YsmWL8e9brVaLxMTEYkxLVLDc3FzRq1cvYW1tLY4dO/bU29+7d0/Mnj1b1KhRQwAQL7/8sti/fz9fo8qZzZs3C4VCIUaPHi13FFmxUFKZtWnTJmFraysaNGjAQ6EmJiUlRQwbNkwAED169BA3btwotn0bDAbx+++/iypVqggXFxdx+PDhYts3UUGWLFkiJEkSe/fufab7ZWdni/Xr14sWLVoIAMLDw0P89NNPIicnp4SSUmlbtWqVACD+/PNPuaPIhoWSypzc3FwxYsQIAUAMGDBApKSkyB2JHrFr1y7h4uIibGxsxOrVq0tsNCY6Olp06tRJKJVKsWDBghJ5DKKHEhIShK2trRg5cuRz78NgMIg9e/YYTxh0dnYWc+fOFUlJScWYlORgMBhEjx49RL169YROp5M7jixYKKlM0ev1YvDgwUKpVIo1a9bw0JEJuX//vnjvvfcEANGzZ09x8+bNEn/M3Nxc8cEHHwgAYuHChSX+eFRxrV27VigUChEfH18s+wsPDxfvvfeeMDc3F9bW1mLs2LGPrXpAZcvRo0cFAHHo0CG5o8iChZLKlE8//VRIkpTvZHiSx86dO0Xt2rWFra2t+O6770q96M+YMUMAEJs3by7Vx6WK4/XXXxft27cv9v3euXNHfPLJJ8LR0VEoFArxyiuviCNHjhT741DJ0+v1omrVquLjjz+WO4oseH0zKjMiIiLw1Vdf4dNPP8XAgQPljkMA7t+/j3fffRd9+vRBs2bNEB4ejmHDhpX61YZmz56NV155BWPGjMH9+/dL9bGpYkhPT0eNGjWKfb/Vq1fHrFmzEBMTgxUrVuD8+fPo2LEj2rdvjy1btkCn0xX7Y1LJUCgUqF69OtLS0uSOIgsWSiozPvnkE9StWxczZsyQOwoB2LlzJ9zd3fH7779j7dq12LVrF1xdXWXJIkkSli5diszMTCxevFiWDFS+WVhYIDk5ucT2b2VlhREjRuDChQsIDg6GpaUlXnvtNTRs2BBLliypsCWlLBFCIDk5GZaWlnJHkQULJZUJmZmZ2LVrF4YPH85r48rs/v37GDJkCF5++WW0aNEC4eHheO+992S/BnqtWrXQr18/bN26VdYcVD5169YNR44cQUpKSok+jkKhgJ+fH/7++2+EhoaiY8eOmDJlClxcXDBt2jTcunWrRB+fnt/58+cRGxuL7t27yx1FFiyUVCacP38eWVlZ6Natm9xRKrQdO3agefPm+OOPP7Bu3Trs3LkTLi4ucscy6t69O86fP4+MjAy5o1A507dvX0iShIULF5baY3p6emLDhg24ceMGRowYge+++w5169bFwIEDERYWVmo5qHC++uorVKtWDS+++KLcUWTBQkllgsFgAIAKeyhBbsnJyRg8eDD8/PzQqlUrREREYMiQIbKPSv7Xw38fD/+9EBWX2rVr44MPPsDcuXNx5syZUn/sr7/+GjExMViwYAGOHj0KLy8vdOvWDcHBwfz3bgI0Gg1+/fVXLFy4sMIeRWOhpDKhevXqAIArV67InKTiCQ4ORvPmzREUFIQffvgBO3bsQO3ateWO9USXL1+Gra0trKys5I5C5dCMGTPQokUL9OrVS5bXIltbW4wfPx5XrlzBb7/9huzsbAQEBKBZs2ZYvXo1MjMzSz0TAYcOHcKbb76JwMDACn3CKAsllQn16tVD06ZNsWXLFrmjVBhJSUl4++23ERAQAA8PD0RERGDw4MEmNyr5kBACf/zxB3r37g2VSiV3HCqHrKyssGvXLlSuXBkvvvgiDh48KEsOlUqFV199FceOHcPRo0fh7u6OUaNGwdXVFZ9++ini4+NL9PGFEBD6OxC5lyByL0MYkkr08UzZ5s2b0adPH7Rv3x6bNm0y2dfHUiHzskVEhfbwsmcnT56UO0q5p9FoRI0aNYSDg4P43//+VyYWkF+/fr0AIP766y+5o1A5FxcXJ7p06SIUCoX4/PPPTeLKKNeuXRPjxo0T1tbWwtzcXLz77rsiPDy82PZvMGQLQ+ZWoU98V+jveAn97YZ5t/j2Qp80Whiy/hIGg/w/j5KWkZFhvLxs//79RVpamtyRZCcJIYTcpZaoMHQ6Hdq0aYPs7GwcOnQITk5Ockcqd5KSkjBu3Dhs3LgRfn5+WL16NWrVqiV3rKeKjIxEp06d0KdPH2zYsEHuOFQB6PV6fPHFF5g1axa6du2KZcuWoXnz5nLHwv379/Hdd99h6dKliI2Nha+vLyZPnoyXXnrpuUbPhDAAmRsg0pcAIg0PDmzmN2dTCUAPKKpDsvsQkmXvIjwT03XkyBGMGDEC169fx9KlS01ilQtTwEPeVGaoVCr88ssvSExMRO/evUt8+Y6KJigoCM2aNcOOHTvw448/Ytu2bWWiTF6/fh09e/ZE7dq1sXTpUrnjUAWhVCrx2WefYf/+/bh27Rrc3d2hVqtx/PhxWXM5ODhg2rRpuH79On766SfEx8fDx8cHrVq1wvr165GTk1PofQn9bYikNyHSvvy3TAL5l0kA0P97k7sQ98fDkDwWwlA+1s8UQmDnzp3o3LkzOnXqBKVSiZMnT2Lo0KEsk/9ioaQypXHjxtizZw+uXr0KLy8vhISEyB2pVAlhgNDdhMjaDpG+Aoa0JRDpqyCy9z6Y0/QcBxwSExMxYMAA9O3bF23btkVkZCQGDRpUJl4kNRoNvL29YW1tjT179qBKlSpyR6IKpmvXrrhy5QrWrVuHS5cuoX379ujWrRv27NnzXP8fi4u5uTneeusthIWFYf/+/XBzc8OQIUNQp04dzJ49G4mJiQXeX+iiIRJfBXLPPcej//u8c/ZBJA2AMNx/jn2YBr1ej19++QUeHh54+eWXkZubi6CgIJw+fRru7u5yxzMpPORNZdL169fxxhtv4OzZs5g3bx7Gjx9fJgrQ8xL6BCDrN4jMDYDh3r9ffXjiiYBxZEBZF5L124ClGpLC5qn73bp1K0aOHInc3FwsW7YMAwYMKBM/x5ycHEybNg1Lly5FYGAgvv/+e5ZJkp1er0dQUBDmzJmD0NBQeHl5Ydy4cfD390flypXljoeLFy9i8eLF+PHHHyFJEoYMGYIJEyagYcOGeW4nDCkQ9wIAw10YX1uemxIwc4dU5WdIklkR91V6bt++jT/++APffPMNrl69ip49e2LGjBno2rVrmXiNlAMLJZVZWq0W06dPx+LFi9G9e3fMnDkTnTt3Llf/2Y3zl9LmAdCh4MNNAPDvc5fsIdnPhmTZ84m3unfvHsaOHYtffvkFarUaK1euRM2aNYszeonQ6/XYunUrZs2ahUuXLmHhwoUYPXp0ufo7p7JPCIF9+/Zh7ty52L9/P5RKJV588UWo1Wqo1Wq4ubnJmi8hIQErV67E8uXLkZCQgICAAEyePBmdOnWCJEkw3J8KZAfj6a83hSVBspkAyeb9Ytpf8RNC4MKFCwgKCoJGo8HJkyehVCoRGBiI6dOnw9vbW+6IJo+Fksq8P//8Ex988AHOnz+PDh06YPr06fDz8yvzJUMYUiGSRwG5J5/j3hIAAVi+Asn+C0jS/y+j88cff+D999+HTqfDt99+i/79+5v8z0qr1WLDhg2YN28eLl26hO7du2PBggXw8PCQOxpRgWJjY7Ft2zZoNBrs378fubm5aN26tbFctm7dWrb/f9nZ2di4cSMWLVqEyMhIeHt7Y96XarzY6sdC72PtxhSMmHIX1pUkpF5rUMAtlZCcdkJS1S168GKi1+tx9OhRaDQaaDQaXL16FdbW1ujVqxfUajVefvllHvl4BiyUVC4IIbBjxw7MmTPHuC7bjBkz8Prrr5fJNQmFIQ0iaSCgu4KiHXKSAAsfSA7f4N69JIwdOxa//vorAgMDsXLlStSoUaO4IpeIjIwMrFmzBgsXLsStW7eMowXt2rWTOxrRM0tNTcWuXbug0WiwY8cOpKSkwNXVFZ07d4aXlxe8vb3h4eEBG5unT1cpTkII7N69GwsXLsSUoZHo1rESVKqnl9zY2zq06BoF60oSUlINTy2UqDQQCruPiy/4M0pKSkJoaChCQ0MREhKCgwcPIiEhAdWrV0dAQAACAwPRvXt3XpHtObFQUrkihMChQ4cwZ84c7Nq1C3Xr1kX//v2hVqvRpk0bKBSmfx6aEALi/kgg5yCKPn8JACRcjH4RXf2CYDAY8O233+KNN94w2VFJrVaLf/75BxqNBr/88gvu37+PgQMHYtq0aSaxLAtRcdBqtTh48CC2b9+OEydO4MyZM8jOzoYkSWjSpImxYHp5ecHDwwPW1tYlnknooiHuvVTo2we8HQdJAqo4KPD79vSnFEoAkhWkqscgKSoVMenTJScnIywsDCEhIcYCeePGDQAPrjjk6emJ9u3bQ61Wo23btmXid4OpY6Gkcuv06dNYtmwZtm3bhsTERNSsWRMBAQFQq9Xo3r27yV5vVWRpIFKmFus+9XqBDxc0wJTp642XsTQlqamp+PPPP6HRaLBz507jyM0rr7yCcePGoU6dOnJHJCpROp0OkZGRxvITGhqKM2fOICcnBwqFAk2aNIGnpyfq1asHNzc3uLm5wdXVFa6ursX2WiYyN0GkfgbjWdoF2LAlFWNmJCD8H1d88nVi4QolAKnyj5AsXihyVuDBEYzo6GhERUUZt6tXryIsLAzXrl0DANjY2MDT09NYzr29vdGgQQMWyBLAQknlnk6nw9GjR42Tra9fvw4bGxvjPJnevXvD0dFR7pgAACFyIO52/HfNt8f/a54Jz8HHc+8h/IIWCUl6WFlKaFzfHO8Ptsdbr9rlu1+DkKAwc4fC6fcSTP9soqOjsX37dmg0Gvz999955pYFBgaiVatWJjuKSlQacnNzERkZmadgRkVF4fbt23mWJKpRo0aekvnwYzc3N9SuXRv29vZQKpVPfTxDykdA1lY8OAEwf3fv6eDeJQqfT3PE+4MdMGT8nUIWSgUk26mQrN8r1HO/f/++sTD+tzhGRUXlWfpIqVTC2dkZdevWhYeHh7FANmrUiOWxlLBQUoUihEBERIRxEvapU6cAAHXr1s3zDtbT01OWZT5E1laIlA/y/f6Bo5n4NSgNHdtawbmmChmZBvz8Rxp+DUrHrGmO+GhiwRPIJcetkMxK/7Dx7du384y8hISE4M6dO8azXwMDAxEQECD72a9EZUFOTg5u3bplLFb/LVsxMTHQarV57mNtbQ07OzvY2dnB3t7e+PGj2/DX/oZztbtPffzXht7Gnbs6HNTUfrD8UCELpd6gQMTVBvhtdyukpqbm2VJSUvJ8npWVlee+VlZWTyzMD7datWqVyfny5QkLJVVosbGxOHDggHGidlhYGNLT0wEA9evXzzOPydPTEw4ODiWax5DYH8g9g2ddrqPDyzGIu6PDzdCCzqBUApXegMLusyIkfLr4+Pg8xTE0NBRxcXEAAEdHR+PP08vLC926dTOJ9fmo/BBCwGAwQK/XQ6/XQ6fTPfHjon5enPsq7n3n5uYiJycHOTk50Gq1j+3bYDDAYDAYf1YPa0DIHhd4tCj4hJTft6fhrdHxCN3jgmaNHxxqL2yh1OkEtv6pxfSvFE8stP8tuvb29nBxcYGbmxucnJx4xMLEsVASPcJgMODy5ct5ylBYWBgyMjIAAM7OzgW+Sy7K2ZlC6CDiWwHIfeb7+g+KxYXLWlw98ZQlOVSNoHDa/nwB8eCXdXJycr6HoKKiopCQkAAAqFKlSp5RXy8vL7i6uvKXQiEJIUyqpJSVMqXXF8eJbM9PoVBApVJBqVRCqVTm+bi0P3/W+6q7bEK1ynH5Prf0DAMatb+Jga/Y4qMJ/380ZPSMuwjenYHosLowM5NgXSm/Q8xKwCoQCvs5xfxTJ1PAQkn0FHq9HpcvX0ZISAiuXLmSpzzdunULOt3/zzeqXLnyYyWzatWq+R5msrCwMBYskXsRIjGgUJkMBgGDAUi+r8eW7emY8EkCls6uhhFv2z/lngpI1c9BkswfPKYQyMrKyvew0+3btx8rjw9HcAHA0tLSeGLAw+fbtGlTeHt7Gw9f5zdaVJZKihw55XxpliRJ9nJTFh9boVCU6TdMhpQZQFYQ8ltd4mZMLuq3vVngPgJ8rbF1fa18vquAZDMRks2IosQkE8VCSVQEer3eWLoe3R4tYA9HN5/EzMzMWDR796iEpbNyCvW470+Lx3c/pQIAzM0lLJrlhPffcSjUfVt0vYebMTnIzc2FTqcrsLgolUqYmZkZN4VCkecX58NDZ6Y6WiR3wSirj12WSxE9P5GxASLtC+R3lnd2tgHHw7If+/rXy5Jx8HgWdmysBacqSrg3yf+sc6nyD5AsOhZXZDIhLJREJSwnJyffEcBHN5dqVzGi/5lC7TP6Vi7u3tPjbqIe2/dkYM2GFMz92AmT33/6fMRO6mzcSVDB3NzcuFlYWMDCwgKWlpbGPx9+LHe5ed7Py/poEVFpE7qrEPf6PPP9Cn+WtzmkaschKUp34XYqHTwliqiEWVhYoGrVqqhatWqBtxPakxBJbxVqn661zeBa2wwA0KfHgwWPP/zqHt5+zRZVnQr+b33k2FlICp4IQ0R5SaoGEGZeQO5pFN91vB9SAlZ9WSbLMS7ORGQqVI2e+65tPCyg0wHXowtePw4KR5ZJIsrXgzUin61M/rCkRiFGJw2QKg167lxk+lgoiUyEpHAAFDWf674HjmRBoQDquRY0OqkAzFo+1/6JqIKw6AFYvATg6QuhF54EWA+DZPb8b5rJ9PGQN5EpsXoZyPgB+Z1lOWJKPOxsFWjjYYnqTkrcS3pwlvdmTTqmjKr8lMPdBkiWvUskNhGVD5IkAXazIO69DIhU5PdaVHhKQFUPks3Y4ohHJown5RCZEKGLhrjXE/mdZfnDLyn43y+puHAlF/dT9bCxVqBVMwu8O8CuwEsvAgAkW0jVjkKSTPMa5kRkOkTupQdzukU6nr9UKgGlM6QqmyApC55DTmUfCyWRiTHcnwJkb0dxT4qXbKZCshlWrPskovJL6K5D3B8L6K4ivze5BTJ/AZL9YkhKx2LPRqaHhZLIxAjDfYgEX0Dcx3O9iD9GCaiaQHL8DZLEWS5EVHhCaIGM1RDpq/HgKl4FvSYpABgeHA2xnQpYvcGluyoQFkoiEyRyjkIkPzzbsij/RZWAZP2gTKqecllGIqJ8CEMqkBUEkRUE6C4C+O+KEpaAWQtIlV4FLHtDkgq+JjiVPyyURCZKZO+HuD8GDwrl88xhUj4YKajyP0hmTYs5HRFVVELkArpr/560IwGKKoCyLiSJC8dUZCyURCZM5Ebg/9q7Y5MIgygKo3dY1g0MbMEGDA1MrMcC7MEyxE5MDW1ALMDASFB3/Q0mEwThyqJwTjwFfMw85i3Pl8nuIT+/qRzz7MFZxtFVxuq7vboA8DsEJfxxc4bpOsvLTfLxlPnb19fnppE5v7RLVscZhxdzK4X5JQD2QFDCP7Es2+T1NsvbXfJ+n2wfk2yTsZlbdtYnGZvzZH0qJAHYK0EJAEDFBC0AABVBCQBARVACAFARlAAAVAQlAAAVQQkAQEVQAgBQEZQAAFQEJQAAFUEJAEBFUAIAUBGUAABUBCUAABVBCQBARVACAFARlAAAVAQlAAAVQQkAQEVQAgBQEZQAAFQEJQAAFUEJAEBFUAIAUBGUAABUBCUAABVBCQBARVACAFARlAAAVAQlAAAVQQkAQEVQAgBQEZQAAFQEJQAAFUEJAEBFUAIAUBGUAABUBCUAAJVPvS8sw9r/UpEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#perform spectral clustering with sklearn\n",
    "from sklearn.cluster import SpectralClustering\n",
    "from sklearn import metrics\n",
    "sc = SpectralClustering(2, affinity='precomputed', n_init=100)\n",
    "sp_clust=sc.fit(adj_mat_w)\n",
    "sc_labels=sp_clust.labels_\n",
    "nx.draw(G,with_labels=True, node_color=sc_labels) "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "98c19053",
   "metadata": {},
   "source": [
    "Script 5-2: Spectral Clustering on Ecosystem Notes Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "f2edfa02",
   "metadata": {},
   "outputs": [],
   "source": [
    "#set up needed packages\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import os\n",
    "#you may need to install sentence_transformers if the package is not already in your environment\n",
    "#!pip install sentence_transformers\n",
    "from sentence_transformers import SentenceTransformer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "b5aaefb8",
   "metadata": {},
   "outputs": [],
   "source": [
    "#import first network dataset\n",
    "File =\"C:/users/njfar/OneDrive/Desktop/SC_Notes.csv\"\n",
    "pwd = os.getcwd()\n",
    "os.chdir(os.path.dirname(File))\n",
    "mydata = pd.read_csv(os.path.basename(File),encoding='latin1')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d675156d",
   "metadata": {},
   "outputs": [],
   "source": [
    "#prepare data\n",
    "mydata['Notes']=mydata['Notes'].fillna(value=\".\")\n",
    "\n",
    "#strip to text for input into BERT model\n",
    "text_list=list(mydata.Notes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "b68aa63d",
   "metadata": {},
   "outputs": [],
   "source": [
    "#get BERT--768 vectors\n",
    "#note, you'll need enough memory to load the transformer model\n",
    "sbert_model1 = SentenceTransformer('all-mpnet-base-v2')\n",
    "\n",
    "#encode data with BERT\n",
    "encoded_text1=sbert_model1.encode(text_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "6abf85bf",
   "metadata": {},
   "outputs": [],
   "source": [
    "#make nearest neighbors graph\n",
    "from sklearn.neighbors import kneighbors_graph\n",
    "n_adj = kneighbors_graph(encoded_text1, n_neighbors=3).toarray()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "2218069d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0 0 1 0 0 0 1 1 0 1]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\njfar\\anaconda3\\lib\\site-packages\\sklearn\\manifold\\_spectral_embedding.py:234: UserWarning: Array is not symmetric, and will be converted to symmetric by average with its transpose.\n",
      "  adjacency = check_symmetric(adjacency)\n"
     ]
    }
   ],
   "source": [
    "#run spectral clustering\n",
    "from sklearn.cluster import SpectralClustering\n",
    "from sklearn import metrics\n",
    "sc = SpectralClustering(2, affinity='precomputed', n_init=100)\n",
    "sp_clust=sc.fit(n_adj)\n",
    "sc_labels=sp_clust.labels_\n",
    "print(sc_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "6a9b6cf1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['Mangrove ecosystem. Numerous butterflies, lizards, and insects. Gumbolimbo trees. Soggy soil.', 'Tropical pines. Scat shows raccoon and coyote populations here. Recent controlled burn.', 'Brown grass. Lots of children romping around. Damaged hibiscus plants.', 'Sewage and dumped barrels visible in lake. Dense mangroves. Fish population. Lizards.', 'Gumbolimbo trees, green grass, and pines. Chipmunks and squirrels sighted. Strong root systems.', 'Large duck population. Many banyan trees. Mostly green grass. Some gumbolimbo trees. Some iguanas.', 'Green grass. Few trees. Not many animals. Downed branches. Many children playing in protected areas.', 'Brown grass. A few crocodiles. Few trees. Downed branches. Some parking lot run-off.', 'Wide variety of tropical plants and trees. Large lizard and iguana population. Some parrots and turkey vultures.', 'Small grass area. Some saplings. Gravel paths. Many cars parked in non-parking zones. Lots of run-off.']\n"
     ]
    }
   ],
   "source": [
    "#examine notes\n",
    "print(text_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "85198583",
   "metadata": {},
   "outputs": [],
   "source": [
    "#create training dataset for supervised learning\n",
    "#turn BERT embedding into array\n",
    "BERT_array1=np.array([x for x in encoded_text1])\n",
    "\n",
    "#convert to dataframes\n",
    "BERT_df1=pd.DataFrame(BERT_array1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "d54ba382",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\njfar\\anaconda3\\lib\\site-packages\\sklearn\\neighbors\\_classification.py:228: FutureWarning: Unlike other reduction functions (e.g. `skew`, `kurtosis`), the default behavior of `mode` typically preserves the axis it acts along. In SciPy 1.11.0, this behavior will change: the default value of `keepdims` will become False, the `axis` over which the statistic is taken will be eliminated, and the value None will no longer be accepted. Set `keepdims` to True or False to avoid this warning.\n",
      "  mode, _ = stats.mode(_y[neigh_ind, k], axis=1)\n"
     ]
    }
   ],
   "source": [
    "#create KNN classifier and test accuracy\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "#get predictors and outcome\n",
    "BERT_df1['Type']=mydata['Type']\n",
    "df_train, df_test = train_test_split(BERT_df1, test_size=0.2, random_state=0)\n",
    "X = df_train.iloc[:,0:767]\n",
    "y = df_train.iloc[:,768]\n",
    "X_test = df_test.iloc[:,0:767]\n",
    "y_test = df_test.iloc[:,768]\n",
    "\n",
    "#create KNN classifier and print accuracy\n",
    "eu=KNeighborsClassifier(n_neighbors=2,metric='euclidean')\n",
    "eu.fit(X,y)\n",
    "print(eu.score(X_test,y_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6b230661",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
